Android - 在对话框中显示片段

时间:2014-03-04 19:00:20

标签: android fragment fragmentmanager

我正在开发一个使用片段作为导航流基础的Android应用程序。 在某些时候,我遇到了一个我无法解决的问题。

所有片段都从一​​个基类扩展而来,该基类具有导航管理器所需的一些属性,称为NavigationFragment,它从Fragment扩展。

现在,我需要在Dialog上显示一个像弹出窗口一样的片段。

我找到了令人惊讶的类DialogFragment来完成这个技巧,但问题是片段无法从此扩展,因为它已经从NavigationFragment扩展。

我不想让NavigationFragment成为DialogFragment,因为它们中只有少数会显示为弹出窗口。

你知道替代方案吗?像一个可以包含片段的对话框,还是别的东西?

谢谢!

1 个答案:

答案 0 :(得分:0)

你遇到的并不是真正的问题。 您应该NavigationFragment延长DialogFragment,然后只在onCreate中为{{1}}调用您想要显示为对话框的人。来自setShowsDialog(true)

setShowsDialog

  

控制是否应在对话框中显示此片段。如果未设置,则不会在onActivityCreated(Bundle)中创建对话框   因此不会将片段的视图层次结构添加到其中。这允许   你改为将它用作普通片段(嵌入其内部)   活性)。

     

这通常是根据片段是否与传递给的容器视图ID相关联而设置的   FragmentTransaction.add(int,Fragment)。如果片段添加了   一个容器,setShowsDialog将被初始化为false;除此以外,   这将是真的。

有关如何使用此功能的更详细说明,请参阅helpDoc或更好的官方文档(Android fragment show as dialogfragment or usual fragment)。