Я не уверен, какой тип макета вы используете для своего DialogFragment, но обычно в XML, который DialogFragment раздувает, вам нужно добавить FrameLayout
и, что важно, дать ему идентификатор. Затем, когда вы выполняете транзакцию фрагмента, вы передаете идентификатор ресурса этого FrameLayout
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();
person
Simon
schedule
05.04.2016