Share via


Fragment Class

Definition

A Fragment is a piece of an application's user interface or behavior that can be placed in an Activity.

[Android.Runtime.Register("android/app/Fragment", DoNotGenerateAcw=true)]
public class Fragment : Java.Lang.Object, Android.Content.IComponentCallbacks2, Android.Views.View.IOnCreateContextMenuListener, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/app/Fragment", DoNotGenerateAcw=true)>]
type Fragment = class
    inherit Object
    interface IComponentCallbacks2
    interface IComponentCallbacks
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface View.IOnCreateContextMenuListener
Inheritance
Fragment
Derived
Attributes
Implements

Remarks

A Fragment is a piece of an application's user interface or behavior that can be placed in an Activity. Interaction with fragments is done through FragmentManager, which can be obtained via Activity#getFragmentManager() Activity.getFragmentManager() and Fragment#getFragmentManager() Fragment.getFragmentManager().

The Fragment class can be used many ways to achieve a wide variety of results. In its core, it represents a particular operation or interface that is running within a larger Activity. A Fragment is closely tied to the Activity it is in, and can not be used apart from one. Though Fragment defines its own lifecycle, that lifecycle is dependent on its activity: if the activity is stopped, no fragments inside of it can be started; when the activity is destroyed, all fragments will be destroyed.

All subclasses of Fragment must include a public no-argument constructor. The framework will often re-instantiate a fragment class when needed, in particular during state restore, and needs to be able to find this constructor to instantiate it. If the no-argument constructor is not available, a runtime exception will occur in some cases during state restore.

Topics covered here: <ol> <li>Older Platforms<li>Lifecycle<li>Layout<li>Back Stack</ol>

<div class="special reference"> <h3>Developer Guides</h3>

For more information about using fragments, read the Fragments developer guide.

</div>

"OlderPlatforms"><h3>Older Platforms</h3>

While the Fragment API was introduced in android.os.Build.VERSION_CODES#HONEYCOMB, a version of the API at is also available for use on older platforms through androidx.fragment.app.FragmentActivity. See the blog post Fragments For All for more details.

"Lifecycle"><h3>Lifecycle</h3>

Though a Fragment's lifecycle is tied to its owning activity, it has its own wrinkle on the standard activity lifecycle. It includes basic activity lifecycle methods such as #onResume, but also important are methods related to interactions with the activity and UI generation.

The core series of lifecycle methods that are called to bring a fragment up to resumed state (interacting with the user) are:

<ol> <li> #onAttach called once the fragment is associated with its activity. <li> #onCreate called to do initial creation of the fragment. <li> #onCreateView creates and returns the view hierarchy associated with the fragment. <li> #onActivityCreated tells the fragment that its activity has completed its own Activity#onCreate Activity.onCreate(). <li> #onViewStateRestored tells the fragment that all of the saved state of its view hierarchy has been restored. <li> #onStart makes the fragment visible to the user (based on its containing activity being started). <li> #onResume makes the fragment begin interacting with the user (based on its containing activity being resumed). </ol>

As a fragment is no longer being used, it goes through a reverse series of callbacks:

<ol> <li> #onPause fragment is no longer interacting with the user either because its activity is being paused or a fragment operation is modifying it in the activity. <li> #onStop fragment is no longer visible to the user either because its activity is being stopped or a fragment operation is modifying it in the activity. <li> #onDestroyView allows the fragment to clean up resources associated with its View. <li> #onDestroy called to do final cleanup of the fragment's state. <li> #onDetach called immediately prior to the fragment no longer being associated with its activity. </ol>

"Layout"><h3>Layout</h3>

Fragments can be used as part of your application's layout, allowing you to better modularize your code and more easily adjust your user interface to the screen it is running on. As an example, we can look at a simple program consisting of a list of items, and display of the details of each item.

An activity's layout XML can include &lt;fragment&gt; tags to embed fragment instances inside of the layout. For example, here is a simple layout that embeds one fragment:

{

This member is deprecated. Use the Jetpack Fragment Libraryandroidx.fragment.app.Fragment for consistent behavior across all devices and access to Lifecycle.

Java documentation for android.app.Fragment.

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Constructors

Fragment()

Default constructor.

Fragment(IntPtr, JniHandleOwnership)

A constructor used when creating managed representations of JNI objects; called by the runtime.

Properties

Activity

Return the Activity this fragment is currently associated with.

AllowEnterTransitionOverlap

Returns whether the exit transition and enter transition overlap or not. -or- Sets whether the exit transition and enter transition overlap or not.

AllowReturnTransitionOverlap

Returns whether the return transition and reenter transition overlap or not. -or- Sets whether the return transition and reenter transition overlap or not.

Arguments

Return the arguments supplied to #setArguments, if any. -or- Supply the construction arguments for this fragment.

ChildFragmentManager

Return a private FragmentManager for placing and managing Fragments inside of this Fragment.

Class

Returns the runtime class of this Object.

(Inherited from Object)
Context

Return the Context this fragment is currently associated with.

EnterTransition

Returns the Transition that will be used to move Views into the initial scene. -or- Sets the Transition that will be used to move Views into the initial scene.

ExitTransition

Returns the Transition that will be used to move Views out of the scene when the fragment is removed, hidden, or detached when not popping the back stack. -or- Sets the Transition that will be used to move Views out of the scene when the fragment is removed, hidden, or detached when not popping the back stack.

FragmentManager

Return the FragmentManager for interacting with fragments associated with this fragment's activity.

Handle

The handle to the underlying Android instance.

(Inherited from Object)
Host

Return the host object of this fragment.

Id

Return the identifier this fragment is known by.

IsAdded

Return true if the fragment is currently added to its activity.

IsDetached

Return true if the fragment has been explicitly detached from the UI.

IsHidden

Return true if the fragment has been hidden.

IsInLayout

Return true if the layout is included as part of an activity view hierarchy via the &lt;fragment&gt; tag.

IsRemoving

Return true if this fragment is currently being removed from its activity.

IsResumed

Return true if the fragment is in the resumed state.

IsStateSaved

Returns true if this fragment is added and its state has already been saved by its host.

IsVisible

Return true if the fragment is currently visible to the user.

JniIdentityHashCode (Inherited from Object)
JniPeerMembers
LayoutInflater

Returns the cached LayoutInflater used to inflate Views of this Fragment.

LoaderManager

Return the LoaderManager for this fragment, creating it if needed.

ParentFragment

Returns the parent Fragment containing this Fragment.

PeerReference (Inherited from Object)
ReenterTransition

Returns the Transition that will be used to move Views in to the scene when returning due to popping a back stack. -or- Sets the Transition that will be used to move Views in to the scene when returning due to popping a back stack.

Resources

Return getActivity().getResources().

RetainInstance

Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change).

ReturnTransition

Returns the Transition that will be used to move Views out of the scene when the Fragment is preparing to be removed, hidden, or detached because of popping the back stack. -or- Sets the Transition that will be used to move Views out of the scene when the Fragment is preparing to be removed, hidden, or detached because of popping the back stack.

SharedElementEnterTransition

Returns the Transition that will be used for shared elements transferred into the content Scene. -or- Sets the Transition that will be used for shared elements transferred into the content Scene.

SharedElementReturnTransition

Return the Transition that will be used for shared elements transferred back during a pop of the back stack. -or- Sets the Transition that will be used for shared elements transferred back during a pop of the back stack.

Tag

Get the tag name of the fragment, if specified.

TargetFragment

Return the target fragment set by #setTargetFragment.

TargetRequestCode

Return the target request code set by #setTargetFragment.

ThresholdClass

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

ThresholdType

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

UserVisibleHint

Set a hint to the system about whether this fragment's UI is currently visible to the user.

View

Get the root view for the fragment's layout (the one returned by #onCreateView), if provided.

Methods

Clone()

Creates and returns a copy of this object.

(Inherited from Object)
Dispose() (Inherited from Object)
Dispose(Boolean) (Inherited from Object)
Dump(String, FileDescriptor, PrintWriter, String[])

Print the Fragments's state into the given stream.

Equals(Object)
Obsolete.

Subclasses can not override equals().

GetHashCode()
Obsolete.

Subclasses can not override hashCode().

GetString(Int32, Object[])

Return a localized string from the application's package's default string table.

GetString(Int32)

Return a localized string from the application's package's default string table.

GetText(Int32)

Return a localized, styled CharSequence from the application's package's default string table.

GetTextFormatted(Int32)

Return a localized, styled CharSequence from the application's package's default string table.

Instantiate(Context, String, Bundle)

Create a new instance of a Fragment with the given class name.

Instantiate(Context, String)

Like #instantiate(Context, String, Bundle) but with a null argument Bundle.

JavaFinalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

(Inherited from Object)
Notify()

Wakes up a single thread that is waiting on this object's monitor.

(Inherited from Object)
NotifyAll()

Wakes up all threads that are waiting on this object's monitor.

(Inherited from Object)
OnActivityCreated(Bundle)

Called when the fragment's activity has been created and this fragment's view hierarchy instantiated.

OnActivityResult(Int32, Result, Intent)

Receive the result from a previous call to #startActivityForResult(Intent, int).

OnAttach(Activity)

This member is deprecated.

OnAttach(Context)

Called when a fragment is first attached to its context.

OnAttachFragment(Fragment)

Called when a fragment is attached as a child of this fragment.

OnConfigurationChanged(Configuration)

Called by the system when the device configuration changes while your component is running.

OnContextItemSelected(IMenuItem)

This hook is called whenever an item in a context menu is selected.

OnCreate(Bundle)

Called to do initial creation of a fragment.

OnCreateAnimator(FragmentTransit, Boolean, Int32)

Called when a fragment loads an animation.

OnCreateContextMenu(IContextMenu, View, IContextMenuContextMenuInfo)

Called when a context menu for the view is about to be shown.

OnCreateOptionsMenu(IMenu, MenuInflater)

Initialize the contents of the Activity's standard options menu.

OnCreateView(LayoutInflater, ViewGroup, Bundle)

Called to have the fragment instantiate its user interface view.

OnDestroy()

Called when the fragment is no longer in use.

OnDestroyOptionsMenu()

Called when this fragment's option menu items are no longer being included in the overall options menu.

OnDestroyView()

Called when the view previously created by #onCreateView has been detached from the fragment.

OnDetach()

Called when the fragment is no longer attached to its activity.

OnGetLayoutInflater(Bundle)

Returns the LayoutInflater used to inflate Views of this Fragment.

OnHiddenChanged(Boolean)

Called when the hidden state (as returned by #isHidden() of the fragment has changed.

OnInflate(Activity, IAttributeSet, Bundle)

This member is deprecated.

OnInflate(Context, IAttributeSet, Bundle)

Called when a fragment is being created as part of a view layout inflation, typically from setting the content view of an activity.

OnInflate(IAttributeSet, Bundle)
Obsolete.

This member is deprecated.

OnLowMemory()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage.

OnMultiWindowModeChanged(Boolean, Configuration)

Called when the Fragment's activity changes from fullscreen mode to multi-window mode and visa-versa.

OnMultiWindowModeChanged(Boolean)

Called when the Fragment's activity changes from fullscreen mode to multi-window mode and visa-versa.

OnOptionsItemSelected(IMenuItem)

This hook is called whenever an item in your options menu is selected.

OnOptionsMenuClosed(IMenu)

This hook is called whenever the options menu is being closed (either by the user canceling the menu with the back/menu button, or when an item is selected).

OnPause()

Called when the Fragment is no longer resumed.

OnPictureInPictureModeChanged(Boolean, Configuration)

Called by the system when the activity changes to and from picture-in-picture mode.

OnPictureInPictureModeChanged(Boolean)

Called by the system when the activity changes to and from picture-in-picture mode.

OnPrepareOptionsMenu(IMenu)

Prepare the Screen's standard options menu to be displayed.

OnRequestPermissionsResult(Int32, String[], Permission[])

Callback for the result from requesting permissions.

OnResume()

Called when the fragment is visible to the user and actively running.

OnSaveInstanceState(Bundle)

Called to ask the fragment to save its current dynamic state, so it can later be reconstructed in a new instance of its process is restarted.

OnStart()

Called when the Fragment is visible to the user.

OnStop()

Called when the Fragment is no longer started.

OnTrimMemory(TrimMemory)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process.

OnViewCreated(View, Bundle)

Called immediately after #onCreateView(LayoutInflater, ViewGroup, Bundle) has returned, but before any saved state has been restored in to the view.

OnViewStateRestored(Bundle)

Called when all saved state has been restored into the view hierarchy of the fragment.

PostponeEnterTransition()

Postpone the entering Fragment transition until #startPostponedEnterTransition() or FragmentManager#executePendingTransactions() has been called.

RegisterForContextMenu(View)

Registers a context menu to be shown for the given view (multiple views can show the context menu).

RequestPermissions(String[], Int32)

Requests permissions to be granted to this application.

SetEnterSharedElementCallback(SharedElementCallback)

When custom transitions are used with Fragments, the enter transition callback is called when this Fragment is attached or detached when not popping the back stack.

SetExitSharedElementCallback(SharedElementCallback)

When custom transitions are used with Fragments, the exit transition callback is called when this Fragment is attached or detached when popping the back stack.

SetHandle(IntPtr, JniHandleOwnership)

Sets the Handle property.

(Inherited from Object)
SetHasOptionsMenu(Boolean)

Report that this fragment would like to participate in populating the options menu by receiving a call to #onCreateOptionsMenu and related methods.

SetInitialSavedState(Fragment+SavedState)

Set the initial saved state that this Fragment should restore itself from when first being constructed, as returned by FragmentManager#saveFragmentInstanceState(Fragment) FragmentManager.saveFragmentInstanceState.

SetMenuVisibility(Boolean)

Set a hint for whether this fragment's menu should be visible.

SetTargetFragment(Fragment, Int32)

Optional target for this fragment.

ShouldShowRequestPermissionRationale(String)

Gets whether you should show UI with rationale before requesting a permission.

StartActivity(Intent, Bundle)

Call Activity#startActivity(Intent, Bundle) from the fragment's containing Activity.

StartActivity(Intent)

Call Activity#startActivity(Intent) from the fragment's containing Activity.

StartActivityForResult(Intent, Int32, Bundle)

Call Activity#startActivityForResult(Intent, int, Bundle) from the fragment's containing Activity.

StartActivityForResult(Intent, Int32)

Call Activity#startActivityForResult(Intent, int) from the fragment's containing Activity.

StartIntentSenderForResult(IntentSender, Int32, Intent, ActivityFlags, ActivityFlags, Int32, Bundle)

Call Activity#startIntentSenderForResult(IntentSender, int, Intent, int, int, int, Bundle) from the fragment's containing Activity.

StartPostponedEnterTransition()

Begin postponed transitions after #postponeEnterTransition() was called.

ToArray<T>() (Inherited from Object)
ToString()

Returns a string representation of the object.

(Inherited from Object)
UnregisterForContextMenu(View)

Prevents a context menu to be shown for the given view.

UnregisterFromRuntime() (Inherited from Object)
Wait()

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>.

(Inherited from Object)
Wait(Int64, Int32)

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed.

(Inherited from Object)
Wait(Int64)

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed.

(Inherited from Object)

Explicit Interface Implementations

IJavaPeerable.Disposed() (Inherited from Object)
IJavaPeerable.DisposeUnlessReferenced() (Inherited from Object)
IJavaPeerable.Finalized() (Inherited from Object)
IJavaPeerable.JniManagedPeerState (Inherited from Object)
IJavaPeerable.SetJniIdentityHashCode(Int32) (Inherited from Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) (Inherited from Object)
IJavaPeerable.SetPeerReference(JniObjectReference) (Inherited from Object)

Extension Methods

JavaCast<TResult>(IJavaObject)

Performs an Android runtime-checked type conversion.

JavaCast<TResult>(IJavaObject)
GetJniTypeName(IJavaPeerable)

Applies to