Created
May 25, 2018 18:00
-
-
Save joseprl89/6d732ecca9b7079f93ec6f82477b4248 to your computer and use it in GitHub Desktop.
How the HolderFragment is created and added onto the fragment stack for https://medium.com/@josep.rodriguez/internals-of-android-architecture-components-part-i-the-viewmodel-d893e362a0d9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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