DialogFragment 是Android 官方推荐使用 来代替 Dialog ,可以让它具有更高的可复用性(降低耦合)和更好的便利性(很好的处理屏幕翻转的情况),下main来让我们看看他具体怎么使用。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190724171916529.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzgwMDUy,size_16,color_FFFFFF,t_70)首先继承Diaolog fragmet 然后重写onCreateView方法,如果要写简单的话就复写onCreateDialog,本篇主要讲onCreateView
下面来看代码:
![001](https://img-blog.csdnimg.cn/20190724171422607.png?x-oss-process=image/watermark,![type_ZmFuZ3poZW5naGVpdGk](https://img-blog.csdnimg.cn/20190724171620440.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzgwMDUy,size_16,color_FFFFFF,t_70),shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzgwMDUy,size_16,color_FFFFFF,t_70)和普通fragment用法一样,引入布局,然后再onViewCreated初始化
这样基本就完成一个简单了,然后再Activity中调用
![003](https://img-blog.csdnimg.cn/20190724170252995.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzgwMDUy,size_16,color_FFFFFF,t_70)这样,传值和平常Fragment中一样,利用Bundle传值,图一中有接收,这里和Dialog不一样,Dialog是是new的时候传进来的
![002](https://img-blog.csdnimg.cn/20190724171457181.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzgwMDUy,size_16,color_FFFFFF,t_70)然后定义接口,方便在AActivity中调用![004](https://img-blog.csdnimg.cn/20190724170548851.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzgwMDUy,size_16,color_FFFFFF,t_70)最后还有一点与Dialog不一样,就是大家比较常用了强制点击,因为这里没有继承Dialog方法,所有没有setCancelable(),setCanceledOnTouchOutside方法,点击查看Dialog Fragment源码发现有个getDialog方法可以用,在Activity中实现就会发现项目崩溃了,说这个不存在,目前不知道咋回事,目前是在class中进行设置如图:![005](https://img-blog.csdnimg.cn/20190724170930245.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzgwMDUy,size_16,color_FFFFFF,t_70)上面还有一些常用的设置Dialog背景,样式,和大小设么的就不一一解释了
关于Dialog fragment暂时就记录这么多,闲来无聊,多学一点,每天进步一点