在android项目当中,当需要实现弹出框或者浮层功能时,我们往往可以使用Dialog、AlertDialog、PopupWindow、DialogFragment。
谷歌推荐使用DialogFragment来实现对话框,而不是直接使用Dialog。
好处:
1)使用起来方便,更容易进行模块封装
2)能很好的处理屏幕翻转情况。我们知道,Android要求所有的activity在销毁前要关闭其页面里的Dialog。不然会报Android....Leak.....Window信息,想想,如果在activity上弹出弹窗后屏幕发生旋转,导致activity重建,这时候普通的Dialog并没有关闭,就会导致问题的发生。而使用DialogFragment,他集成自fragment,当activity重建时,基于DiologFragment的对话框会由FragmentManager自动重建。
使用:
有两种创建DialogFragment的方式:
1)重写onCreateDialog。一般用于创建传统的对话框。UI简单,功能单一。
2)重写onCreateView。一般用于创建复杂的弹窗或全屏效果展示的弹窗。UI、功能复杂些,一般有网络请求等异步操作。
网友评论