What does FragmentManager and FragmentTransaction exactly do?
AndroidFragmenttransactionFragmentmanagerFragment BackstackAndroid Problem Overview
I have simple code below
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
What do these lines of code do?
Android Solutions
Solution 1 - Android
getFragmentManager()
> Return the FragmentManager for interacting with fragments associated > with this activity.
FragmentManager which is used to create transactions for adding, removing or replacing fragments.
fragmentManager.beginTransaction();
> Start a series of edit operations on the Fragments associated with > this FragmentManager.
The FragmentTransaction object which will be used.
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
Replaces the current fragment with the mFeedFragment
on the layout with the id: R.id.fragment_container
fragmentTransaction.addToBackStack(null);
> Add this transaction to the back stack. This means that the > transaction will be remembered after it is committed, and will reverse > its operation when later popped off the stack.
Useful for the return button usage so the transaction can be rolled back. The parameter name:
> Is an optional name for this back stack state, or null.
See for information the other question https://stackoverflow.com/questions/22984950/what-is-the-meaning-of-addtobackstack-with-null-parameter
The Last statement commits the transaction and executes all commands.
See the google documentation for more help:
http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html http://developer.android.com/reference/android/app/FragmentManager.html http://developer.android.com/reference/android/app/FragmentTransaction.html
Solution 2 - Android
FragmentManager
Android A FragmentManager
manages Fragments
in Android, specifically it handles transactions between fragments. A transaction is a way to add, replace, or remove fragments.
FragmentTransaction
Android As said before a FragmentTransaction
gives us methods to add, replace, or remove fragments in Android. It gives us an interface for interacting with fragments.
> fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
The method replace(int containerViewId, Fragment fragment)
replaces an existing Fragment
object from the container containerViewId
and adds the the Fragment fragment
> fragmentTransaction.addToBackStack(null);
This method, addToBackOfStack(String name)
, adds this transaction to the back stack, this can be used so that Fragments
are remembered and can be used again by the Activity
> fragmentTransaction.commit();
The method commit()
schedules this transaction, this is not instantaneous; It is scheduled on the main thread to be done when the thread is ready.