Added in API level 11
Deprecated in API level 28

DialogFragment


open class DialogFragment : Fragment, DialogInterface.OnCancelListener, DialogInterface.OnDismissListener

A fragment that displays a dialog window, floating on top of its activity's window. This fragment contains a Dialog object, which it displays as appropriate based on the fragment's state. Control of the dialog (deciding when to show, hide, dismiss it) should be done through the API here, not with direct calls on the dialog.

Implementations should override this class and implement onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) to supply the content of the dialog. Alternatively, they can override onCreateDialog(android.os.Bundle) to create an entirely custom dialog, such as an AlertDialog, with its own content.

Topics covered here:

  1. Lifecycle
  2. Basic Dialog
  3. Alert Dialog
  4. Selecting Between Dialog or Embedding

Lifecycle

DialogFragment does various things to keep the fragment's lifecycle driving it, instead of the Dialog. Note that dialogs are generally autonomous entities -- they are their own window, receiving their own input events, and often deciding on their own when to disappear (by receiving a back key event or the user clicking on a button).

DialogFragment needs to ensure that what is happening with the Fragment and Dialog states remains consistent. To do this, it watches for dismiss events from the dialog and takes care of removing its own state when they happen. This means you should use show(android.app.FragmentManager,java.lang.String) or show(android.app.FragmentTransaction,java.lang.String) to add an instance of DialogFragment to your UI, as these keep track of how DialogFragment should remove itself when the dialog is dismissed.

Basic Dialog

The simplest use of DialogFragment is as a floating container for the fragment's view hierarchy. A simple implementation may look like this:

An example showDialog() method on the Activity could be:

This removes any currently shown dialog, creates a new DialogFragment with an argument, and shows it as a new state on the back stack. When the transaction is popped, the current DialogFragment and its Dialog will be destroyed, and the previous one (if any) re-shown. Note that in this case DialogFragment will take care of popping the transaction of the Dialog is dismissed separately from it.

Alert Dialog

Instead of (or in addition to) implementing onCreateView to generate the view hierarchy inside of a dialog, you may implement onCreateDialog(android.os.Bundle) to create your own custom Dialog object.

This is most useful for creating an AlertDialog, allowing you to display standard alerts to the user that are managed by a fragment. A simple example implementation of this is:

The activity creating this fragment may have the following methods to show the dialog and receive results from it:

Note that in this case the fragment is not placed on the back stack, it is just added as an indefinitely running fragment. Because dialogs normally are modal, this will still operate as a back stack, since the dialog will capture user input until it is dismissed. When it is dismissed, DialogFragment will take care of removing itself from its fragment manager.

Selecting Between Dialog or Embedding

A DialogFragment can still optionally be used as a normal fragment, if desired. This is useful if you have a fragment that in some cases should be shown as a dialog and others embedded in a larger UI. This behavior will normally be automatically selected for you based on how you are using the fragment, but can be customized with setShowsDialog(boolean).

For example, here is a simple dialog fragment:

An instance of this fragment can be created and shown as a dialog:

It can also be added as content in a view hierarchy:

Summary

Constants
static Int

Style for setStyle(int,int): a basic, normal dialog.

static Int

Style for setStyle(int,int): don't draw any frame at all; the view hierarchy returned by onCreateView is entirely responsible for drawing the dialog.

static Int

Style for setStyle(int,int): like STYLE_NO_FRAME, but also disables all input to the dialog.

static Int

Style for setStyle(int,int): don't include a title area.

Inherited constants
Int TRIM_MEMORY_BACKGROUND

Level for onTrimMemory(int): the process has gone on to the LRU list. This is a good opportunity to clean up resources that can efficiently and quickly be re-built if the user returns to the app.

Int TRIM_MEMORY_COMPLETE

Level for onTrimMemory(int): the process is nearing the end of the background LRU list, and if more memory isn't found soon it will be killed.

Int TRIM_MEMORY_MODERATE

Level for onTrimMemory(int): the process is around the middle of the background LRU list; freeing memory can help the system keep other processes running later in the list for better overall performance.

Int TRIM_MEMORY_RUNNING_CRITICAL

Level for onTrimMemory(int): the process is not an expendable background process, but the device is running extremely low on memory and is about to not be able to keep any background processes running. Your running process should free up as many non-critical resources as it can to allow that memory to be used elsewhere. The next thing that will happen after this is onLowMemory() called to report that nothing at all can be kept in the background, a situation that can start to notably impact the user.

Int TRIM_MEMORY_RUNNING_LOW

Level for onTrimMemory(int): the process is not an expendable background process, but the device is running low on memory. Your running process should free up unneeded resources to allow that memory to be used elsewhere.

Int TRIM_MEMORY_RUNNING_MODERATE

Level for onTrimMemory(int): the process is not an expendable background process, but the device is running moderately low on memory. Your running process may want to release some unneeded resources for use elsewhere.

Int TRIM_MEMORY_UI_HIDDEN

Level for onTrimMemory(int): the process had been showing a user interface, and is no longer doing so. Large allocations with the UI should be released at this point to allow memory to be better managed.

Public constructors

Public methods
open Unit

Dismiss the fragment and its dialog.

open Unit

Version of dismiss() that uses FragmentTransaction.commitAllowingStateLoss().

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

open Dialog!

open Boolean

Return the current value of setShowsDialog(boolean).

open Int

open Boolean

Return the current value of setCancelable(boolean).

open Unit
onActivityCreated(savedInstanceState: Bundle?)

open Unit
onAttach(context: Context!)

open Unit

open Unit
onCreate(savedInstanceState: Bundle?)

open Dialog!
onCreateDialog(savedInstanceState: Bundle!)

Override to build your own custom Dialog container.

open Unit

Remove dialog.

open Unit

open Unit

open Unit

open Unit

open Unit

open Unit
setCancelable(cancelable: Boolean)

Control whether the shown Dialog is cancelable.

open Unit
setShowsDialog(showsDialog: Boolean)

Controls whether this fragment should be shown in a dialog.

open Unit
setStyle(style: Int, theme: Int)

Call to customize the basic appearance and behavior of the fragment's dialog.

open Unit
show(manager: FragmentManager!, tag: String!)

Display the dialog, adding the fragment to the given FragmentManager.

open Int
show(transaction: FragmentTransaction!, tag: String!)

Display the dialog, adding the fragment using an existing transaction and then committing the transaction.

Inherited functions
Boolean equals(other: Any?)

Subclasses can not override equals().

Activity! getActivity()

Return the Activity this fragment is currently associated with.

Boolean getAllowEnterTransitionOverlap()

Returns whether the exit transition and enter transition overlap or not. When true, the enter transition will start as soon as possible. When false, the enter transition will wait until the exit transition completes before starting.

Boolean getAllowReturnTransitionOverlap()

Returns whether the return transition and reenter transition overlap or not. When true, the reenter transition will start as soon as possible. When false, the reenter transition will wait until the return transition completes before starting.

Bundle! getArguments()

Return the arguments supplied to setArguments, if any.

FragmentManager! getChildFragmentManager()

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

Context! getContext()

Return the Context this fragment is currently associated with.

Transition! getEnterTransition()

Returns the Transition that will be used to move Views into the initial scene. The entering Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as entering is governed by changing visibility from View.INVISIBLE to View.VISIBLE.

Transition! getExitTransition()

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. The exiting Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as exiting is governed by changing visibility from View.VISIBLE to View.INVISIBLE. If transition is null, the views will remain unaffected.

FragmentManager! getFragmentManager()

Return the FragmentManager for interacting with fragments associated with this fragment's activity. Note that this will be non-null slightly before getActivity(), during the time from when the fragment is placed in a FragmentTransaction until it is committed and attached to its activity.

If this Fragment is a child of another Fragment, the FragmentManager returned here will be the parent's getChildFragmentManager().

Any? getHost()

Return the host object of this fragment. May return null if the fragment isn't currently being hosted.

Int getId()

Return the identifier this fragment is known by. This is either the android:id value supplied in a layout or the container view ID supplied when adding the fragment.

LayoutInflater! getLayoutInflater()

Returns the cached LayoutInflater used to inflate Views of this Fragment. If onGetLayoutInflater(android.os.Bundle) has not been called onGetLayoutInflater(android.os.Bundle) will be called with a null argument and that value will be cached.

The cached LayoutInflater will be replaced immediately prior to onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) and cleared immediately after onDetach().

LoaderManager! getLoaderManager()

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

Fragment! getParentFragment()

Returns the parent Fragment containing this Fragment. If this Fragment is attached directly to an Activity, returns null.

Transition! getReenterTransition()

Returns the Transition that will be used to move Views in to the scene when returning due to popping a back stack. The entering Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as exiting is governed by changing visibility from View.VISIBLE to View.INVISIBLE. If transition is null, the views will remain unaffected. If nothing is set, the default will be to use the same transition as setExitTransition(android.transition.Transition).

Resources! getResources()

Return getActivity().getResources().

Boolean getRetainInstance()

Transition! getReturnTransition()

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. The exiting Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as entering is governed by changing visibility from View.VISIBLE to View.INVISIBLE. If transition is null, entering Views will remain unaffected.

Transition! getSharedElementEnterTransition()

Returns the Transition that will be used for shared elements transferred into the content Scene. Typical Transitions will affect size and location, such as android.transition.ChangeBounds. A null value will cause transferred shared elements to blink to the final position.

Transition! getSharedElementReturnTransition()

Return the Transition that will be used for shared elements transferred back during a pop of the back stack. This Transition acts in the leaving Fragment. Typical Transitions will affect size and location, such as android.transition.ChangeBounds. A null value will cause transferred shared elements to blink to the final position. If no value is set, the default will be to use the same value as setSharedElementEnterTransition(android.transition.Transition).

String! getString(resId: Int)

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

String! getString(resId: Int, vararg formatArgs: Any!)

Return a localized formatted string from the application's package's default string table, substituting the format arguments as defined in java.util.Formatter and java.lang.String#format.

String! getTag()

Get the tag name of the fragment, if specified.

Fragment! getTargetFragment()

Return the target fragment set by setTargetFragment.

Int getTargetRequestCode()

Return the target request code set by setTargetFragment.

CharSequence! getText(resId: Int)

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

Boolean getUserVisibleHint()

View? getView()

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

Int hashCode()

Subclasses can not override hashCode().

Fragment! instantiate(context: Context!, fname: String!)

Like instantiate(android.content.Context,java.lang.String,android.os.Bundle) but with a null argument Bundle.

Fragment! instantiate(context: Context!, fname: String!, args: Bundle?)

Create a new instance of a Fragment with the given class name. This is the same as calling its empty constructor.

Boolean isAdded()

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

Boolean isDetached()

Return true if the fragment has been explicitly detached from the UI. That is, FragmentTransaction.detach(Fragment) has been used on it.

Boolean isHidden()

Return true if the fragment has been hidden. By default fragments are shown. You can find out about changes to this state with onHiddenChanged. Note that the hidden state is orthogonal to other states -- that is, to be visible to the user, a fragment must be both started and not hidden.

Boolean isInLayout()

Return true if the layout is included as part of an activity view hierarchy via the <fragment> tag. This will always be true when fragments are created through the <fragment> tag, except in the case where an old fragment is restored from a previous state and it does not appear in the layout of the current state.

Boolean isRemoving()

Return true if this fragment is currently being removed from its activity. This is not whether its activity is finishing, but rather whether it is in the process of being removed from its activity.

Boolean isResumed()

Return true if the fragment is in the resumed state. This is true for the duration of onResume() and onPause() as well.

Boolean isStateSaved()

Returns true if this fragment is added and its state has already been saved by its host. Any operations that would change saved state should not be performed if this method returns true, and some operations such as setArguments(android.os.Bundle) will fail.

Boolean isVisible()

Return true if the fragment is currently visible to the user. This means it: (1) has been added, (2) has its view attached to the window, and (3) is not hidden.

Unit onActivityResult(requestCode: Int, resultCode: Int, data: Intent!)

Receive the result from a previous call to startActivityForResult(android.content.Intent,int). This follows the related Activity API as described there in Activity.onActivityResult(int, int, Intent).

Unit onAttach(activity: Activity!)


If you override this method you must call through to the superclass implementation.

Unit onAttachFragment(childFragment: Fragment!)

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

This is called after the attached fragment's onAttach and before the attached fragment's onCreate if the fragment has not yet had a previous call to onCreate.

Unit onConfigurationChanged(newConfig: Configuration)

Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources.

At the time that this function has been called, your Resources object will have been updated to return resource values matching the new configuration.

For more information, read Handling Runtime Changes. If you override this method you must call through to the superclass implementation.

Boolean onContextItemSelected(item: MenuItem!)

This hook is called whenever an item in a context menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.

Use MenuItem.getMenuInfo() to get extra information set by the View that added this menu item.

Derived classes should call through to the base class for it to perform the default menu handling.

Animator! onCreateAnimator(transit: Int, enter: Boolean, nextAnim: Int)

Called when a fragment loads an animation.

Unit onCreateContextMenu(menu: ContextMenu!, v: View!, menuInfo: ContextMenu.ContextMenuInfo!)

Called when a context menu for the view is about to be shown. Unlike onCreateOptionsMenu, this will be called every time the context menu is about to be shown and should be populated for the view (or item inside the view for AdapterView subclasses, this can be found in the menuInfo)).

Use onContextItemSelected(android.view.MenuItem) to know when an item has been selected.

The default implementation calls up to Activity.onCreateContextMenu, though you can not call this implementation if you don't want that behavior.

It is not safe to hold onto the context menu after this method returns. Called when the context menu for this view is being built. It is not safe to hold onto the menu after this method returns.

Unit onCreateOptionsMenu(menu: Menu!, inflater: MenuInflater!)

Initialize the contents of the Activity's standard options menu. You should place your menu items in to menu. For this method to be called, you must have first called setHasOptionsMenu. See Activity.onCreateOptionsMenu for more information.

View? onCreateView(inflater: LayoutInflater!, container: ViewGroup?, savedInstanceState: Bundle!)

Called to have the fragment instantiate its user interface view. This is optional, and non-graphical fragments can return null (which is the default implementation). This will be called between onCreate(android.os.Bundle) and onActivityCreated(android.os.Bundle).

If you return a View from here, you will later be called in onDestroyView when the view is being released.

Unit onDestroy()

Called when the fragment is no longer in use. This is called after onStop() and before onDetach().
If you override this method you must call through to the superclass implementation.

Unit onDestroyOptionsMenu()

Called when this fragment's option menu items are no longer being included in the overall options menu. Receiving this call means that the menu needed to be rebuilt, but this fragment's items were not included in the newly built menu (its onCreateOptionsMenu(android.view.Menu,android.view.MenuInflater) was not called).

Unit onHiddenChanged(hidden: Boolean)

Called when the hidden state (as returned by isHidden() of the fragment has changed. Fragments start out not hidden; this will be called whenever the fragment changes state from that.

Unit onInflate(activity: Activity!, attrs: AttributeSet!, savedInstanceState: Bundle!)


If you override this method you must call through to the superclass implementation.

Unit onInflate(context: Context!, attrs: AttributeSet!, savedInstanceState: Bundle!)

Called when a fragment is being created as part of a view layout inflation, typically from setting the content view of an activity. This may be called immediately after the fragment is created from a tag in a layout file. Note this is before the fragment's onAttach(android.app.Activity) has been called; all you should do here is parse the attributes and save them away.

This is called every time the fragment is inflated, even if it is being inflated into a new instance with saved state. It typically makes sense to re-parse the parameters each time, to allow them to change with different configurations.

Here is a typical implementation of a fragment that can take parameters both through attributes supplied here as well from getArguments():

Note that parsing the XML attributes uses a "styleable" resource. The declaration for the styleable used here is:

The fragment can then be declared within its activity's content layout through a tag like this:

This fragment can also be created dynamically from arguments given at runtime in the arguments Bundle; here is an example of doing so at creation of the containing activity:


If you override this method you must call through to the superclass implementation.

Unit onInflate(attrs: AttributeSet!, savedInstanceState: Bundle!)


If you override this method you must call through to the superclass implementation.

Unit onLowMemory()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. While the exact point at which this will be called is not defined, generally it will happen when all background process have been killed. That is, before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing. If you override this method you must call through to the superclass implementation.

Unit onMultiWindowModeChanged(isInMultiWindowMode: Boolean)

Called when the Fragment's activity changes from fullscreen mode to multi-window mode and visa-versa. This is generally tied to android.app.Activity#onMultiWindowModeChanged of the containing Activity.

Unit onMultiWindowModeChanged(isInMultiWindowMode: Boolean, newConfig: Configuration!)

Called when the Fragment's activity changes from fullscreen mode to multi-window mode and visa-versa. This is generally tied to android.app.Activity#onMultiWindowModeChanged of the containing Activity. This method provides the same configuration that will be sent in the following onConfigurationChanged(android.content.res.Configuration) call after the activity enters this mode.

Boolean onOptionsItemSelected(item: MenuItem!)

This hook is called whenever an item in your options menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.

Derived classes should call through to the base class for it to perform the default menu handling.

Unit onOptionsMenuClosed(menu: Menu!)

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).

Unit onPause()

Called when the Fragment is no longer resumed. This is generally tied to Activity.onPause of the containing Activity's lifecycle.
If you override this method you must call through to the superclass implementation.

Unit onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean)

Called by the system when the activity changes to and from picture-in-picture mode. This is generally tied to android.app.Activity#onPictureInPictureModeChanged of the containing Activity.

Unit onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean, newConfig: Configuration!)

Called by the system when the activity changes to and from picture-in-picture mode. This is generally tied to android.app.Activity#onPictureInPictureModeChanged of the containing Activity. This method provides the same configuration that will be sent in the following onConfigurationChanged(android.content.res.Configuration) call after the activity enters this mode.

Unit onPrepareOptionsMenu(menu: Menu!)

Prepare the Screen's standard options menu to be displayed. This is called right before the menu is shown, every time it is shown. You can use this method to efficiently enable/disable items or otherwise dynamically modify the contents. See Activity.onPrepareOptionsMenu for more information.

Unit onRequestPermissionsResult(requestCode: Int, permissions: Array<String!>, grantResults: IntArray)

Callback for the result from requesting permissions. This method is invoked for every call on requestPermissions(java.lang.String[],int).

Note: It is possible that the permissions request interaction with the user is interrupted. In this case you will receive empty permissions and results arrays which should be treated as a cancellation.

Unit onResume()

Called when the fragment is visible to the user and actively running. This is generally tied to Activity.onResume of the containing Activity's lifecycle.
If you override this method you must call through to the superclass implementation.

Unit onTrimMemory(level: Int)

Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. You should never compare to exact values of the level, since new intermediate values may be added -- you will typically want to compare if the value is greater or equal to a level you are interested in.

To retrieve the processes current trim level at any point, you can use ActivityManager.getMyMemoryState(RunningAppProcessInfo). If you override this method you must call through to the superclass implementation.

Unit onViewCreated(view: View!, savedInstanceState: Bundle?)

Called immediately after onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) has returned, but before any saved state has been restored in to the view. This gives subclasses a chance to initialize themselves once they know their view hierarchy has been completely created. The fragment's view hierarchy is not however attached to its parent at this point.

Unit onViewStateRestored(savedInstanceState: Bundle!)

Called when all saved state has been restored into the view hierarchy of the fragment. This can be used to do initialization based on saved state that you are letting the view hierarchy track itself, such as whether check box widgets are currently checked. This is called after onActivityCreated(android.os.Bundle) and before onStart().
If you override this method you must call through to the superclass implementation.

Unit postponeEnterTransition()

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

This method gives the Fragment the ability to delay Fragment animations until all data is loaded. Until then, the added, shown, and attached Fragments will be INVISIBLE and removed, hidden, and detached Fragments won't be have their Views removed. The transaction runs when all postponed added Fragments in the transaction have called startPostponedEnterTransition().

This method should be called before being added to the FragmentTransaction or in onCreate(android.os.Bundle), onAttach(android.content.Context), or onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle)}. startPostponedEnterTransition() must be called to allow the Fragment to start the transitions.

When a FragmentTransaction is started that may affect a postponed FragmentTransaction, based on which containers are in their operations, the postponed FragmentTransaction will have its start triggered. The early triggering may result in faulty or nonexistent animations in the postponed transaction. FragmentTransactions that operate only on independent containers will not interfere with each other's postponement.

Calling postponeEnterTransition on Fragments with a null View will not postpone the transition. Likewise, postponement only works if FragmentTransaction optimizations are enabled.

Unit registerForContextMenu(view: View!)

Registers a context menu to be shown for the given view (multiple views can show the context menu). This method will set the OnCreateContextMenuListener on the view to this fragment, so onCreateContextMenu(android.view.ContextMenu,android.view.View,android.view.ContextMenu.ContextMenuInfo) will be called when it is time to show the context menu.

Unit requestPermissions(permissions: Array<String!>, requestCode: Int)

Requests permissions to be granted to this application. These permissions must be requested in your manifest, they should not be granted to your app, and they should have protection level #PROTECTION_DANGEROUS dangerous, regardless whether they are declared by the platform or a third-party app.

Normal permissions android.content.pm.PermissionInfo#PROTECTION_NORMAL are granted at install time if requested in the manifest. Signature permissions android.content.pm.PermissionInfo#PROTECTION_SIGNATURE are granted at install time if requested in the manifest and the signature of your app matches the signature of the app declaring the permissions.

Call shouldShowRequestPermissionRationale(java.lang.String) before calling this API to check if the system recommends to show a rationale UI before asking for a permission.

If your app does not have the requested permissions the user will be presented with UI for accepting them. After the user has accepted or rejected the requested permissions you will receive a callback on onRequestPermissionsResult(int,java.lang.String[],int[]) reporting whether the permissions were granted or not.

Note that requesting a permission does not guarantee it will be granted and your app should be able to run without having this permission.

This method may start an activity allowing the user to choose which permissions to grant and which to reject. Hence, you should be prepared that your activity may be paused and resumed. Further, granting some permissions may require a restart of you application. In such a case, the system will recreate the activity stack before delivering the result to onRequestPermissionsResult(int,java.lang.String[],int[]).

When checking whether you have a permission you should use android.content.Context#checkSelfPermission(String).

Calling this API for permissions already granted to your app would show UI to the user to decide whether the app can still hold these permissions. This can be useful if the way your app uses data guarded by the permissions changes significantly.

You cannot request a permission if your activity sets noHistory to true because in this case the activity would not receive result callbacks including onRequestPermissionsResult(int,java.lang.String[],int[]).

Unit setAllowEnterTransitionOverlap(allow: Boolean)

Sets whether the exit transition and enter transition overlap or not. When true, the enter transition will start as soon as possible. When false, the enter transition will wait until the exit transition completes before starting.

Unit setAllowReturnTransitionOverlap(allow: Boolean)

Sets whether the return transition and reenter transition overlap or not. When true, the reenter transition will start as soon as possible. When false, the reenter transition will wait until the return transition completes before starting.

Unit setArguments(args: Bundle!)

Supply the construction arguments for this fragment. The arguments supplied here will be retained across fragment destroy and creation.

This method cannot be called if the fragment is added to a FragmentManager and if isStateSaved() would return true. Prior to Build.VERSION_CODES.O, this method may only be called if the fragment has not yet been added to a FragmentManager.

Unit setEnterSharedElementCallback(callback: 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.

Unit setEnterTransition(transition: Transition!)

Sets the Transition that will be used to move Views into the initial scene. The entering Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as entering is governed by changing visibility from View.INVISIBLE to View.VISIBLE. If transition is null, entering Views will remain unaffected.

Unit setExitSharedElementCallback(callback: 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.

Unit setExitTransition(transition: Transition!)

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. The exiting Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as exiting is governed by changing visibility from View.VISIBLE to View.INVISIBLE. If transition is null, the views will remain unaffected.

Unit setHasOptionsMenu(hasMenu: Boolean)

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

Unit setInitialSavedState(state: Fragment.SavedState!)

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

Unit setMenuVisibility(menuVisible: Boolean)

Set a hint for whether this fragment's menu should be visible. This is useful if you know that a fragment has been placed in your view hierarchy so that the user can not currently seen it, so any menu items it has should also not be shown.

Unit setReenterTransition(transition: Transition!)

Sets the Transition that will be used to move Views in to the scene when returning due to popping a back stack. The entering Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as exiting is governed by changing visibility from View.VISIBLE to View.INVISIBLE. If transition is null, the views will remain unaffected. If nothing is set, the default will be to use the same transition as setExitTransition(android.transition.Transition).

Unit setRetainInstance(retain: Boolean)

Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be used with fragments not in the back stack. If set, the fragment lifecycle will be slightly different when an activity is recreated:

Unit setReturnTransition(transition: Transition!)

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. The exiting Views will be those that are regular Views or ViewGroups that have ViewGroup.isTransitionGroup return true. Typical Transitions will extend android.transition.Visibility as entering is governed by changing visibility from View.VISIBLE to View.INVISIBLE. If transition is null, entering Views will remain unaffected. If nothing is set, the default will be to use the same value as set in setEnterTransition(android.transition.Transition).

Unit setSharedElementEnterTransition(transition: Transition!)

Sets the Transition that will be used for shared elements transferred into the content Scene. Typical Transitions will affect size and location, such as android.transition.ChangeBounds. A null value will cause transferred shared elements to blink to the final position.

Unit setSharedElementReturnTransition(transition: Transition!)

Sets the Transition that will be used for shared elements transferred back during a pop of the back stack. This Transition acts in the leaving Fragment. Typical Transitions will affect size and location, such as android.transition.ChangeBounds. A null value will cause transferred shared elements to blink to the final position. If no value is set, the default will be to use the same value as setSharedElementEnterTransition(android.transition.Transition).

Unit setTargetFragment(fragment: Fragment!, requestCode: Int)

Optional target for this fragment. This may be used, for example, if this fragment is being started by another, and when done wants to give a result back to the first. The target set here is retained across instances via FragmentManager.putFragment().

Unit setUserVisibleHint(isVisibleToUser: Boolean)

Set a hint to the system about whether this fragment's UI is currently visible to the user. This hint defaults to true and is persistent across fragment instance state save and restore.

An app may set this to false to indicate that the fragment's UI is scrolled out of visibility or is otherwise not directly visible to the user. This may be used by the system to prioritize operations such as fragment lifecycle updates or loader ordering behavior.

Note: This method may be called outside of the fragment lifecycle and thus has no ordering guarantees with regard to fragment lifecycle method calls.

Note: Prior to Android N there was a platform bug that could cause setUserVisibleHint to bring a fragment up to the started state before its FragmentTransaction had been committed. As some apps relied on this behavior, it is preserved for apps that declare a targetSdkVersion of 23 or lower.

Boolean shouldShowRequestPermissionRationale(permission: String)

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

Unit startActivity(intent: Intent!)

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

Unit startActivity(intent: Intent!, options: Bundle!)

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

Unit startActivityForResult(intent: Intent!, requestCode: Int)

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

Unit startActivityForResult(intent: Intent!, requestCode: Int, options: Bundle!)

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

Unit startIntentSenderForResult(intent: IntentSender!, requestCode: Int, fillInIntent: Intent?, flagsMask: Int, flagsValues: Int, extraFlags: Int, options: Bundle!)

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

Unit startPostponedEnterTransition()

Begin postponed transitions after postponeEnterTransition() was called. If postponeEnterTransition() was called, you must call startPostponedEnterTransition() or FragmentManager.executePendingTransactions() to complete the FragmentTransaction. If postponement was interrupted with FragmentManager.executePendingTransactions(), before startPostponedEnterTransition(), animations may not run or may execute improperly.

String toString()

Unit unregisterForContextMenu(view: View!)

Prevents a context menu to be shown for the given view. This method will remove the OnCreateContextMenuListener on the view.

Unit onConfigurationChanged(newConfig: Configuration)

Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources.

At the time that this function has been called, your Resources object will have been updated to return resource values matching the new configuration.

For more information, read Handling Runtime Changes.

Unit onLowMemory()

This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. While the exact point at which this will be called is not defined, generally it will happen when all background process have been killed. That is, before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing.

Constants

STYLE_NORMAL

Added in API level 11
static val STYLE_NORMAL: Int

Deprecated: Deprecated in Java.

Style for setStyle(int,int): a basic, normal dialog.

Value: 0

STYLE_NO_FRAME

Added in API level 11
static val STYLE_NO_FRAME: Int

Deprecated: Deprecated in Java.

Style for setStyle(int,int): don't draw any frame at all; the view hierarchy returned by onCreateView is entirely responsible for drawing the dialog.

Value: 2

STYLE_NO_INPUT

Added in API level 11
static val STYLE_NO_INPUT: Int

Deprecated: Deprecated in Java.

Style for setStyle(int,int): like STYLE_NO_FRAME, but also disables all input to the dialog. The user can not touch it, and its window will not receive input focus.

Value: 3

STYLE_NO_TITLE

Added in API level 11
static val STYLE_NO_TITLE: Int

Deprecated: Deprecated in Java.

Style for setStyle(int,int): don't include a title area.

Value: 1

Public constructors

DialogFragment

Added in API level 11
DialogFragment()

Public methods

dismiss

Added in API level 11
open fun dismiss(): Unit

Deprecated: Deprecated in Java.

Dismiss the fragment and its dialog. If the fragment was added to the back stack, all back stack state up to and including this entry will be popped. Otherwise, a new transaction will be committed to remove the fragment.

dismissAllowingStateLoss

Added in API level 12
Deprecated in API level 28
open fun dismissAllowingStateLoss(): Unit

Deprecated: Deprecated in Java.

Version of dismiss() that uses FragmentTransaction.commitAllowingStateLoss(). See linked documentation for further details.

dump

Added in API level 11
open fun dump(
    prefix: String!,
    fd: FileDescriptor!,
    writer: PrintWriter!,
    args: Array<String!>!
): Unit

Deprecated: Deprecated in Java.

Parameters
prefix String!: Text to print at the front of each line.
fd FileDescriptor!: The raw file descriptor that the dump is being sent to.
writer PrintWriter!: The PrintWriter to which you should dump your state. This will be closed for you after you return.
args Array<String!>!: additional arguments to the dump request.

getDialog

Added in API level 11
open fun getDialog(): Dialog!

Deprecated: Deprecated in Java.

getShowsDialog

Added in API level 11
open fun getShowsDialog(): Boolean

Deprecated: Deprecated in Java.

Return the current value of setShowsDialog(boolean).

getTheme

Added in API level 11
open fun getTheme(): Int

Deprecated: Deprecated in Java.

isCancelable

Added in API level 11
open fun isCancelable(): Boolean

Deprecated: Deprecated in Java.

Return the current value of setCancelable(boolean).

onActivityCreated

Added in API level 11
open fun onActivityCreated(savedInstanceState: Bundle?): Unit

Deprecated: Deprecated in Java.

Parameters
savedInstanceState Bundle?: If the fragment is being re-created from a previous saved state, this is the state. This value may be null.

onAttach

Added in API level 23
Deprecated in API level 28
open fun onAttach(context: Context!): Unit

Deprecated: Deprecated in Java.

onCancel

Added in API level 11
open fun onCancel(dialog: DialogInterface!): Unit

Deprecated: Deprecated in Java.

Parameters
dialog DialogInterface!: the dialog that was canceled will be passed into the method

onCreate

Added in API level 11
open fun onCreate(savedInstanceState: Bundle?): Unit

Deprecated: Deprecated in Java.

Parameters
savedInstanceState Bundle?: If the fragment is being re-created from a previous saved state, this is the state. This value may be null.

onCreateDialog

Added in API level 11
open fun onCreateDialog(savedInstanceState: Bundle!): Dialog!

Deprecated: Deprecated in Java.

Override to build your own custom Dialog container. This is typically used to show an AlertDialog instead of a generic Dialog; when doing so, onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle) does not need to be implemented since the AlertDialog takes care of its own content.

This method will be called after onCreate(android.os.Bundle) and before onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle). The default implementation simply instantiates and returns a Dialog class.

Note: DialogFragment own the Dialog.setOnCancelListener and Dialog.setOnDismissListener callbacks. You must not set them yourself. To find out about these events, override onCancel(android.content.DialogInterface) and onDismiss(android.content.DialogInterface).

Parameters
savedInstanceState Bundle!: The last saved instance state of the Fragment, or null if this is a freshly created Fragment.
Return
Dialog! Return a new Dialog instance to be displayed by the Fragment.

onDestroyView

Added in API level 11
open fun onDestroyView(): Unit

Deprecated: Deprecated in Java.

Remove dialog.

onDetach

Added in API level 11
open fun onDetach(): Unit

Deprecated: Deprecated in Java.

onDismiss

Added in API level 11
open fun onDismiss(dialog: DialogInterface!): Unit

Deprecated: Deprecated in Java.

Parameters
dialog DialogInterface!: the dialog that was dismissed will be passed into the method

onSaveInstanceState

Added in API level 11
open fun onSaveInstanceState(outState: Bundle!): Unit

Deprecated: Deprecated in Java.

Parameters
outState Bundle!: Bundle in which to place your saved state.

onStart

Added in API level 11
open fun onStart(): Unit

Deprecated: Deprecated in Java.

onStop

Added in API level 11
open fun onStop(): Unit

Deprecated: Deprecated in Java.

setCancelable

Added in API level 11
open fun setCancelable(cancelable: Boolean): Unit

Deprecated: Deprecated in Java.

Control whether the shown Dialog is cancelable. Use this instead of directly calling Dialog.setCancelable(boolean), because DialogFragment needs to change its behavior based on this.

Parameters
cancelable Boolean: If true, the dialog is cancelable. The default is true.

setShowsDialog

Added in API level 11
open fun setShowsDialog(showsDialog: Boolean): Unit

Deprecated: Deprecated in Java.

Controls whether this fragment should be shown in a dialog. If not set, no Dialog will be created in onActivityCreated(android.os.Bundle), and the fragment's view hierarchy will thus not be added to it. This allows you to instead use it as a normal fragment (embedded inside of its activity).

This is normally set for you based on whether the fragment is associated with a container view ID passed to FragmentTransaction.add(int, Fragment). If the fragment was added with a container, setShowsDialog will be initialized to false; otherwise, it will be true.

Parameters
showsDialog Boolean: If true, the fragment will be displayed in a Dialog. If false, no Dialog will be created and the fragment's view hierarchly left undisturbed.

setStyle

Added in API level 11
open fun setStyle(
    style: Int,
    theme: Int
): Unit

Deprecated: Deprecated in Java.

Call to customize the basic appearance and behavior of the fragment's dialog. This can be used for some common dialog behaviors, taking care of selecting flags, theme, and other options for you. The same effect can be achieve by manually setting Dialog and Window attributes yourself. Calling this after the fragment's Dialog is created will have no effect.

Parameters
style Int: Selects a standard style: may be STYLE_NORMAL, STYLE_NO_TITLE, STYLE_NO_FRAME, or STYLE_NO_INPUT.
theme Int: Optional custom theme. If 0, an appropriate theme (based on the style) will be selected for you.

show

Added in API level 11
open fun show(
    manager: FragmentManager!,
    tag: String!
): Unit

Deprecated: Deprecated in Java.

Display the dialog, adding the fragment to the given FragmentManager. This is a convenience for explicitly creating a transaction, adding the fragment to it with the given tag, and committing it. This does not add the transaction to the back stack. When the fragment is dismissed, a new transaction will be executed to remove it from the activity.

Parameters
manager FragmentManager!: The FragmentManager this fragment will be added to.
tag String!: The tag for this fragment, as per FragmentTransaction.add.

show

Added in API level 11
open fun show(
    transaction: FragmentTransaction!,
    tag: String!
): Int

Deprecated: Deprecated in Java.

Display the dialog, adding the fragment using an existing transaction and then committing the transaction.

Parameters
transaction FragmentTransaction!: An existing transaction in which to add the fragment.
tag String!: The tag for this fragment, as per FragmentTransaction.add.
Return
Int Returns the identifier of the committed transaction, as per FragmentTransaction.commit().