FragmentDialog详解
DialogFragment优势
1、有和Fragment基本一致的生命周期,DialogFragment内的业务逻辑可以更好的控制
2、随屏幕旋转(横竖屏幕切换)DialogFragment对话框随之自动调整对话框大小。而AlertDialog和PopupWindow随屏幕切换而消失。 DialogFragment的出现解决 横竖屏幕切换Dialog消失的问题
3、具有更高的可复用性(降低耦合)和更好的便利性(很好的处理屏幕翻转的情况)
DialogFragment的使用
1、方式一:重写DialogFragment的onCreateDialog方法,返回一个Dialog
2、方式二:重写DialogFragment的onCreateView方法,该方法创建的View将会作为Dialog的内容布局
onCraeteView设置的视图优先级要高于在onCreateDialog
3、对Dialog属性的设置必须在onCretaeDialog方法后面执行,不然得不到Dialog实例。可以在DialogFragment的onStar中来对Dialog的样式进行设置
4、DialogFragment在正常Dismiss后并不会直接从当前的栈中移除,而是在DialogFragment中的onDestroyView()回调时,才会对DialogFragment进行出栈操作,所以如果你如果需要在Activity中频繁的显示隐藏一个DialogFragment,那么在dismiss时需要手动的调用dismissAllowingStateLoss()方法,并且再次show时不能用上一个DialogFragment实例