Skip to content

Instantly share code, notes, and snippets.

@lesterlopez-dev
Created August 10, 2018 08:54
Show Gist options
  • Save lesterlopez-dev/5e0f53e68d22f705ed045ee70353413c to your computer and use it in GitHub Desktop.
Save lesterlopez-dev/5e0f53e68d22f705ed045ee70353413c to your computer and use it in GitHub Desktop.
PopBackStack on Nested Child Fragments
@Override
public void onBackPressed() {
for (Fragment fragment : fragmentManager.getFragments()) {
if (fragment.isVisible() && hasBackStack(fragment)) {
if (popFragment(fragment))
return;
}
}
super.onBackPressed();
}
private boolean hasBackStack(Fragment fragment) {
FragmentManager childFragmentManager = fragment.getChildFragmentManager();
return childFragmentManager.getBackStackEntryCount() > 0;
}
private boolean popFragment(Fragment fragment) {
FragmentManager fragmentManager = fragment.getChildFragmentManager();
for (Fragment childFragment : fragmentManager.getFragments()) {
if (childFragment.isVisible()) {
if (hasBackStack(childFragment)) {
return popFragment(childFragment);
} else {
fragmentManager.popBackStack();
return true;
}
}
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment