0

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

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

现在,我需要在对话框中显示其中一个片段,例如弹出窗口。

我发现了神奇的类 DialogFragment 可以解决问题,但问题是片段不能从它扩展,因为它已经从 NavigationFragment 扩展。

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

你知道这个的替代品吗?像可以包含片段或其他内容的对话框?

谢谢!

4

1 回答 1

0

你所遇到的根本不是问题。你应该做NavigationFragmentextend DialogFragment,然后只调用那些你想显示为对话框的人setShowsDialog(true)onCreatehelpDoc

设置显示对话框

控制此片段是否应显示在对话框中。如果未设置,onActivityCreated(Bundle) 中不会创建任何 Dialog,因此不会将 Fragment 的视图层次结构添加到其中。这允许您将其用作普通片段(嵌入在其活动中)。

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

有关如何使用此功能的更详细说明,请参阅Android 片段显示为 dialogfragment 或通常的片段,或者更好的是官方文档(http://developer.android.com/reference/android/app/DialogFragment.html#DialogOrEmbed )功能。

于 2014-03-04T19:40:04.257 回答