DialogFragment屏幕旋转,程序崩溃

DialogFragment在屏幕旋转时程序崩溃?

看到这个问题,不知道你们是什么样的心态,反正我很懵逼,纳尼?google不是说DialogFragment会帮助你解决各种Dialog的疑难杂症吗?怎么会旋转屏幕就崩溃了呢?
于是乎各种探究,最后发现是一个配置问题

解决方案
在AndroidManifest.xml中对应的activity节点中增加
android:configChanges=”orientation”或者更多(用|隔开)

问题就这么简单的解决了,又可以继续dota了

发布了33 篇原创文章 · 获赞 34 · 访问量 381万+
展开阅读全文

Dialog的横坚屏切换问题!

12-17

问题描述:我这里要实现一个拍照的功能,点击拍照,弹出一个Dialog显示你拍的照片并提示你是否保存,这时我还没有保存,然后我切换屏幕变成横屏,这时Dialog只显示了一半,提示你保存的那一部分没有了,不知道什么原因。 下面是我创建Dialog的代码: ``` private intiBuilderDialog() { if (builder == null || !builder.isShowing()) { builder = new Dialog(SamplingCamActivity.this, R.style.mydialog); builder.setContentView(R.layout.img); LayoutParams lay = builder.getWindow().getAttributes(); setParams(lay); builder.show(); } } private void setParams(LayoutParams lay) { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); Rect rect = new Rect(); View view = getWindow().getDecorView(); view.getWindowVisibleDisplayFrame(rect); lay.height = dm.heightPixels - rect.top; lay.width = dm.widthPixels; } ``` 下面是创建Dialog的Style: <style name="mydialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowAnimationStyle">@style/DialogAnimation</item> </style>`enter code here 下面是Dialog的xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/camera_preview_back" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/check_picture" android:textColor="#ffffff" android:textSize="@dimen/TitleTextSize" android:textStyle="bold" android:paddingLeft="20dp" android:paddingTop="5dp" android:paddingBottom="5dp"/> <View android:layout_width="fill_parent" android:layout_height="1.0px" android:background="@drawable/camera_preview_line" /> <ImageView android:id="@+id/ImageView01" android:layout_width="240dp" android:layout_height="320dp" android:layout_gravity="center" android:layout_margin="10.0dip" /> <View android:layout_width="fill_parent" android:layout_height="1.0px" android:background="@drawable/camera_preview_line" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" > <Button android:id="@+id/preview_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_gravity="center_vertical" android:layout_marginRight="10.0dip" android:text="@string/cancel" android:background="@drawable/image_icon" android:textColor="@drawable/text_color"/> <Button android:id="@+id/preview_confirm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="10.0dip" android:layout_toLeftOf="@id/preview_cancel" android:text="@string/accept" android:background="@drawable/image_icon" android:textColor="@drawable/text_color" /> </RelativeLayout> </LinearLayout> 下面是我在横坚屏切换时作的处理:也就是重新再创建一遍Dialog: @Override public void onConfigurationChanged(Configuration newConfig) { // TODO Auto-generated method stub super.onConfigurationChanged(newConfig); if (builder != null && builder.isShowing()) { builder.dismiss(); intiBuilderDialog(); } } 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览