我不确定您为 DialogFragment 使用什么类型的布局,但通常在 DialogFragment 膨胀的 XML 中,您需要添加一个FrameLayout
并且重要的是给它一个 ID。然后,当您进行片段事务时,您传入该 FrameLayout 的资源 ID
XML:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
</LinearLayout>
如果你想使用嵌套片段,你需要调用getChildFragmentManager()
:
FragmentManager fragmentManager = getChildFragmentManager()
然后对于您的片段交易:
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, new MyFragment()).commit();
您可能想使用该add
方法而不是replace
,但这取决于您
如果您希望按下启用后退按钮,您可能还想将前一个片段添加到后台堆栈:
fragmentTransaction.replace(R.id.fragment_container, new MyFragment()).addToBackStack(null).commit();