Skip to content

Instantly share code, notes, and snippets.

@ralphgabrielle
Created May 14, 2019 02:14
Show Gist options
  • Save ralphgabrielle/4220a03cd6754c39c7df74574d5ac74d to your computer and use it in GitHub Desktop.
Save ralphgabrielle/4220a03cd6754c39c7df74574d5ac74d to your computer and use it in GitHub Desktop.
Replace Fragment
private void replaceFragment(FragmentManager fragmentManager, Fragment fragment, String backStackName, String lastAddedStackName) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
BaseNavigationFragment baseFragment;
Fragment fragmentByTag = fragmentManager.findFragmentByTag(backStackName);
if (fragmentByTag != null) {
baseFragment = (BaseFragment) fragmentByTag;
fragmentTransaction
.setTransition(FragmentTransaction.TRANSIT_NONE)
.show(baseFragment)
.commitAllowingStateLoss();
} else {
baseFragment = (BaseFragment) fragment;
int containerID = R.id.containerFragment;
fragmentTransaction
.setTransition(FragmentTransaction.TRANSIT_NONE)
.add(containerID, baseFragment, backStackName)
.commitAllowingStateLoss();
}
BaseFragment lastFragment = (BaseFragment) fragmentManager.findFragmentByTag(lastAddedStackName);
if (lastFragment != null) {
fragmentManager.beginTransaction()
.setTransition(FragmentTransaction.TRANSIT_NONE)
.hide(lastFragment)
.commitAllowingStateLoss();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment