I am having issues with nested/child fragments. My use case is: I have Frag A as parent fragment and FragChild1
, FragChild2
, FragChild3
as child fragments to be displayed inside Frag A
. Now on back press from FragChild3 it should work like :
FragChild3 -> FragChild2 -> FragChild1 -> FragA(ParentFrag).
The code I used to add child fragments are-
for ChildFrag1-
Fragment mChildFragment1 = new ChildFragment1();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.container_view, mChildFragment1);
transaction.addToBackStack("FragChild1");
transaction.commit();
for ChildFrag2-
Fragment mChildFragment2 = new ChildFragment2();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.container_view, mChildFragment2);
transaction.addToBackStack("FragChild2");
transaction.commit();
I have searched through StackOverflow for relevant answers but haven't yet found any proper answer/way of managing backstack for child fragments.
Now this behavior can be implemented with OnBackPressedDispatcher without overriding
onBackPressed
in an Activity.In your parent fragment (where your fragment container is located) add this code in
onAttach
method:Than add fragments in your container like this: