Skip to content

Instantly share code, notes, and snippets.

@joseprl89
Created May 25, 2018 18:00
Show Gist options
  • Save joseprl89/6d732ecca9b7079f93ec6f82477b4248 to your computer and use it in GitHub Desktop.
Save joseprl89/6d732ecca9b7079f93ec6f82477b4248 to your computer and use it in GitHub Desktop.
HolderFragment holderFragmentFor(Fragment parentFragment) {
FragmentManager fm = parentFragment.getChildFragmentManager();
HolderFragment holder = findHolderFragment(fm);
if (holder != null) {
return holder;
}
holder = mNotCommittedFragmentHolders.get(parentFragment);
if (holder != null) {
return holder;
}
parentFragment.getFragmentManager() .registerFragmentLifecycleCallbacks(mParentDestroyedCallback, false);
holder = createHolderFragment(fm);
mNotCommittedFragmentHolders.put(parentFragment, holder);
return holder;
}
private static HolderFragment createHolderFragment(FragmentManager fragmentManager) {
HolderFragment holder = new HolderFragment();
fragmentManager.beginTransaction().add(holder, HOLDER_TAG).commitAllowingStateLoss();
return holder;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment