About FragmentTransaction
In my mind, a better FragmentTransaction should like git, it gives you a buffer area and you can commit for multiple times.
BUT! The truth is that one FT only can commit once. TAT
Here are some packaged func for add/replace fragment without add it to backstack.
//Not-add-to-backstack Add
private void addFragment(int containerID, Fragment fragment){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(containerID, fragment);
fragmentTransaction.commit();
}
//Not-add-to-backstack Replace
private void replaceFragment(int containerID, Fragment fragment){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(containerID, fragment);
fragmentTransaction.commit();
}
If you want to add them to backstack you can easily add this before commit():
fragmentTransaction.addToBackStack(null);