DialogFragment是Fragment家族成员之一,如果你把它简单的理解成Dialog,那就错了。它的确可以做作dialog显示,还可以显示出自己定义的Dialog或者AlertDialog,但它同时也是一个Fragment。
按照官方的话来理解就是,你既可以把它当成一个dialog显示出来,也可以让它作为一个Fragment嵌套在Activity中,这样更方便开发。
为什么这么说呢?试想一下,当产品需求最开始把它作为一个界面显示的时候,你可能已经把它作为Fragment已经写好了,但中途产品又把它设计成一个dialog,那你该怎么办?重新去一个dialog或者activity吗?以前的传参怎么办?过两天,产品又将它改回去,你还要再重写一遍吗?等等一系列的问题就来了。
所以,这个时候,你只需要把当前的Fragment继承类改为DialogFragment,再添加几行代码就可以了。其他的,基本都不用动。即使过两天再改回来,或者别的界面也需要它的时候,你就可以直接把它当做Fragment,继续使用,代码都不用改。
这一点,不得不赞一下Fragment这个的出现,大大方便了开发,再也不怕产品设计调整界面布局了!
这里多