为啥要使用 DialogFragment?
Posted
技术标签:
【中文标题】为啥要使用 DialogFragment?【英文标题】:Why to use DialogFragment?为什么要使用 DialogFragment? 【发布时间】:2012-08-22 19:01:18 【问题描述】:基本上对话框会在后台停用活动。所以DialogFragment
做同样的事情增加了复杂性。那么尽管Dialog
的各种子类都可用,为什么还要选择DialogFragment
。
【问题讨论】:
【参考方案1】:Fragments
在您的活动中使用,但要使用FragmentTransaction
将片段呈现为对话框(窗口)并跟进片段的生命周期,您需要使用DialogFragment
。但是,您也可以使用简单的Dialog
,但这与片段的生命周期无关。
根据谷歌文档:
DialogFragment 仍然可以选择性地用作普通片段,如果 想要的。如果您有一个片段,在某些情况下,这很有用 应显示为对话框,其他内容应嵌入更大的 UI。
【讨论】:
【参考方案2】:FragmentDialog 是一个片段,可以:
用作片段,例如:
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.add(R.id.navigation_fragment, mFriendFragment);
trans.commit();
用作对话框,例如:
FragmentManager fm = getFragmentManager();
UnsubscribeTabletFragment fragment = new UnsubscribeTabletFragment();
fragment.show(fm, "dialog");
因此,如果您有一个片段,并且该片段有时用作片段,有时用作对话框,那么您应该使用这个。
【讨论】:
【参考方案3】:DialogFragment 允许在您的应用程序上重用对话框的一部分。就像片段为你的布局做的一样。
这里有一篇关于 DialogFragment 的好文章: http://android-developers.blogspot.fr/2012/05/using-dialogfragments.html
【讨论】:
【参考方案4】:当您的 android 应用程序中已经使用 Fragment 进行了动态布局时,您需要通过操作按钮单击或其他单击在对话框中/在对话框中使用它,所以这次 dialogFragment 比普通对话框更方便。
【讨论】:
以上是关于为啥要使用 DialogFragment?的主要内容,如果未能解决你的问题,请参考以下文章
Android:为啥 DialogFragment 在方向更改时返回空指针
Android为啥推荐用DialogFragment创建Dialog?