Google is committed to advancing racial equity for Black communities. See how.


abstract class FragmentManager : FragmentResultOwner

Static library support version of the framework's Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework FragmentManager documentation for a class overview.

Your activity must derive from FragmentActivity to use this. From such an activity, you can acquire the FragmentManager by calling FragmentActivity#getSupportFragmentManager.


Nested classes

Representation of an entry on the fragment back stack, as created with FragmentTransaction.addToBackStack().


Callback interface for listening to fragment state changes that happen within a given FragmentManager.


Interface to watch for changes to the back stack.

static Int

Flag for popBackStack(String, int) and popBackStack(int, int): If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn't match is found or the bottom of the stack is reached.

Public constructors

Static library support version of the framework's

Public methods
open Unit

Add a FragmentOnAttachListener that should receive a call to FragmentOnAttachListener#onAttachFragment(FragmentManager, Fragment) when a new Fragment is attached to this FragmentManager.

open Unit

Add a new listener for changes to the fragment back stack.

open FragmentTransaction

Start a series of edit operations on the Fragments associated with this FragmentManager.

clearFragmentResult(@NonNull requestKey: String)

clearFragmentResultListener(@NonNull requestKey: String)

open Unit
dump(@NonNull prefix: String, @Nullable fd: FileDescriptor?, @NonNull writer: PrintWriter, @Nullable args: Array<String!>?)

Print the FragmentManager's state into the given stream.

open static Unit

Control whether the framework's internal fragment manager debugging logs are turned on.

open static Unit

Control whether FragmentManager uses the new state manager that is responsible for:

  • Moving Fragments through their lifecycle methods
  • Running animations and transitions
  • Handling postponed transactions
This must only be changed before any fragment transactions are done (i.e., in your

open Boolean

After a FragmentTransaction is committed with FragmentTransaction.commit(), it is scheduled to be executed asynchronously on the process's main thread.

open static F
findFragment(@NonNull view: View)

Find a Fragment associated with the given View.

open Fragment?
findFragmentById(@IdRes id: Int)

Finds a fragment that was identified by the given id either when inflated from XML or as the container ID when added in a transaction.

open Fragment?
findFragmentByTag(@Nullable tag: String?)

Finds a fragment that was identified by the given tag either when inflated from XML or as supplied when added in a transaction.

open FragmentManager.BackStackEntry

Return the BackStackEntry at index index in the back stack; entries start index 0 being the bottom of the stack.

open Int

Return the number of entries currently in the back stack.

open Fragment?
getFragment(@NonNull bundle: Bundle, @NonNull key: String)

Retrieve the current Fragment instance for a reference previously placed with putFragment(Bundle, String, Fragment).

open FragmentFactory

Gets the current FragmentFactory used to instantiate new Fragment instances.

open MutableList<Fragment!>

Get a list of all fragments that are currently added to the FragmentManager.

open Fragment?

Return the currently active primary navigation fragment for this FragmentManager.

open Boolean

Returns true if the final Activity.onDestroy() call has been made on the FragmentManager's Activity, so this instance is now dead.

open Boolean

Returns true if the FragmentManager's state has already been saved by its host.

open Unit

Pop the top state off the back stack.

open Unit
popBackStack(@Nullable name: String?, flags: Int)

Pop the last fragment transition from the manager's fragment back stack.

open Unit
popBackStack(id: Int, flags: Int)

Pop all back stack states up to the one with the given identifier.

open Boolean

Like popBackStack(), but performs the operation immediately inside of the call.

open Boolean
popBackStackImmediate(@Nullable name: String?, flags: Int)

Like popBackStack(String, int), but performs the operation immediately inside of the call.

open Boolean

Like popBackStack(int, int), but performs the operation immediately inside of the call.

open Unit
putFragment(@NonNull bundle: Bundle, @NonNull key: String, @NonNull fragment: Fragment)

Put a reference to a fragment in a Bundle.

open Unit

Registers a FragmentLifecycleCallbacks to listen to fragment lifecycle events happening in this FragmentManager.

open Unit

Remove a FragmentOnAttachListener that was previously added via addFragmentOnAttachListener(FragmentOnAttachListener).

open Unit

Remove a listener that was previously added with addOnBackStackChangedListener(OnBackStackChangedListener).

open Fragment.SavedState?
saveFragmentInstanceState(@NonNull fragment: Fragment)

Save the current instance state of the given Fragment.

open Unit
setFragmentFactory(@NonNull fragmentFactory: FragmentFactory)

Set a FragmentFactory for this FragmentManager that will be used to create new Fragment instances from this point onward.

setFragmentResult(@NonNull requestKey: String, @NonNull result: Bundle)

setFragmentResultListener(@NonNull requestKey: String, @NonNull lifecycleOwner: LifecycleOwner, @NonNull listener: FragmentResultListener)

open String

open Unit

Unregisters a previously registered FragmentLifecycleCallbacks.

Extension functions
FragmentManager.commit(allowStateLoss: Boolean = false, body: FragmentTransaction.() -> Unit)

Run body in a FragmentTransaction which is automatically committed if it completes without exception.