GuidedStepFragment
open classGuidedStepFragment: Fragment, FocusListener
kotlin.Any | ||
↳ | android.app.Fragment | |
↳ | androidx.leanback.app.GuidedStepFragment |
A GuidedStepFragment is used to guide the user through a decision or series of decisions. It is composed of a guidance view on the left and a view on the right containing a list of possible actions.
Basic Usage
Clients of GuidedStepFragment must create a custom subclass to attach to their Activities. This custom subclass provides the information necessary to construct the user interface and respond to user actions. At a minimum, subclasses should override:
onCreateGuidance
, to provide instructions to the useronCreateActions
, to provide a set ofGuidedAction
s the user can takeonGuidedActionClicked
, to respond to those actions
Clients use following helper functions to add GuidedStepFragment to Activity or FragmentManager:
addAsRoot(Activity, GuidedStepFragment, int)
, to be called during Activity onCreate, adds GuidedStepFragment as the first Fragment in activity.add(FragmentManager, GuidedStepFragment)
oradd(FragmentManager, * GuidedStepFragment, int)
, to add GuidedStepFragment on top of existing Fragments or replacing existing GuidedStepFragment when moving forward to next step.finishGuidedStepFragments()
can either finish the activity or pop all GuidedStepFragment from stack.- If app chooses not to use the helper function, it is the app's responsibility to call
setUiStyle(int)
to select fragment transition and remember the stack entry where it need pops to.
Theming and Stylists
GuidedStepFragment delegates its visual styling to classes called stylists. The is responsible for the left guidance view, while the is responsible for the right actions view. The stylists use theme attributes to derive values associated with the presentation, such as colors, animations, etc. Most simple visual aspects of GuidanceStylist and GuidedActionsStylist can be customized via theming; see their documentation for more information.
GuidedStepFragments must have access to an appropriate theme in order for the stylists to function properly. Specifically, the fragment must receive androidx.leanback.R.style#Theme_Leanback_GuidedStep, or a theme whose parent is is set to that theme. Themes can be provided in one of three ways:
- The simplest way is to set the theme for the host Activity to the GuidedStep theme or a theme that derives from it.
- If the Activity already has a theme and setting its parent theme is inconvenient, the existing Activity theme can have an entry added for the attribute androidx.leanback.R.styleable#LeanbackGuidedStepTheme_guidedStepTheme. If present, this theme will be used by GuidedStepFragment as an overlay to the Activity's theme.
- Finally, custom subclasses of GuidedStepFragment may provide a theme through the
If the theme is provided in multiple ways, the onProvideTheme override has priority, followed by the Activity's theme. (Themes whose parent theme is already set to the guided step theme do not need to set the guidedStepTheme attribute; if set, it will be ignored.)
If themes do not provide enough customizability, the stylists themselves may be subclassed and provided to the GuidedStepFragment through the onCreateGuidanceStylist
and
methods. The stylists have simple hooks so that subclasses may override layout files; subclasses may also have more complex logic to determine styling.
Guided sequences
GuidedStepFragments can be grouped together to provide a guided sequence. GuidedStepFragments grouped as a sequence use custom animations provided by GuidanceStylist
and GuidedActionsStylist
(or subclasses) during transitions between steps. Clients should use add
to place subsequent GuidedFragments onto the fragment stack so that custom animations are properly configured. (Custom animations are triggered automatically when the fragment stack is subsequently popped by any normal mechanism.)
Note: Currently GuidedStepFragments grouped in this way must all be defined programmatically, rather than in XML. This restriction may be removed in the future. androidx.leanback.R.attr#guidedStepTheme androidx.leanback.R.attr#guidedStepBackground androidx.leanback.R.attr#guidedActionContentWidthWeight androidx.leanback.R.attr#guidedActionContentWidthWeightTwoPanels androidx.leanback.R.attr#guidedActionsBackground androidx.leanback.R.attr#guidedActionsBackgroundDark androidx.leanback.R.attr#guidedActionsElevation
Summary
Constants |
|
---|---|
static String |
Fragment argument name for UI style. |
static Int |
One possible value of argument |
static Int | |
static Int |
Default value for argument |
static Int |
This is the case that we use GuidedStepFragment to replace another existing GuidedStepFragment when moving forward to next step. |
Public constructors |
|
---|---|
<init>() |
Public methods |
|
---|---|
open static Int |
add(fragmentManager: FragmentManager!, fragment: GuidedStepFragment!) Adds the specified GuidedStepFragment to the fragment stack, replacing any existing GuidedStepFragments in the stack, and configuring the fragment-to-fragment custom transitions. |
open static Int |
add(fragmentManager: FragmentManager!, fragment: GuidedStepFragment!, id: Int) Adds the specified GuidedStepFragment to the fragment stack, replacing any existing GuidedStepFragments in the stack, and configuring the fragment-to-fragment custom transitions. |
open static Int |
addAsRoot(activity: Activity!, fragment: GuidedStepFragment!, id: Int) Adds the specified GuidedStepFragment as content of Activity; no backstack entry is added so the activity will be dismissed when BACK key is pressed. |
open Unit |
collapseAction(withTransition: Boolean) Collapse action which either has a sub actions list or action with |
open Unit |
Collapse sub actions list. |
open Unit |
expandAction(action: GuidedAction!, withTransition: Boolean) Expand a given action with sub actions list or |
open Unit |
expandSubActions(action: GuidedAction!) Expand a given action's sub actions list. |
open GuidedAction! |
findActionById(id: Long) Find GuidedAction by Id. |
open Int |
Find GuidedAction position in array by Id. |
open GuidedAction! |
findButtonActionById(id: Long) Find button GuidedAction by Id. |
open Int |
Find button GuidedAction position in array by Id. |
open Unit |
Convenient method to close GuidedStepFragments on top of other content or finish Activity if GuidedStepFragments were started in a separate activity. |
open View! |
getActionItemView(position: Int) Returns the view corresponding to the action at the indicated position in the list of actions for this fragment. |
open MutableList<GuidedAction!>! |
Returns the list of GuidedActions that the user may take in this fragment. |
open View! |
getButtonActionItemView(position: Int) Returns the view corresponding to the button action at the indicated position in the list of actions for this fragment. |
open MutableList<GuidedAction!>! |
Returns the list of button GuidedActions that the user may take in this fragment. |
open static GuidedStepFragment! |
Returns the current GuidedStepFragment on the fragment transaction stack. |
open GuidanceStylist! |
Returns the GuidanceStylist that displays guidance information for the user. |
open GuidedActionsStylist! |
Returns the GuidedActionsStylist that displays the actions the user may take. |
open GuidedActionsStylist! |
Returns the GuidedActionsStylist that displays the button actions the user may take. |
open Int |
Returns the position if the currently selected GuidedAction. |
open Int |
Returns the position if the currently selected button GuidedAction. |
open Int |
Read UI style from fragment arguments. |
open Boolean | |
open Boolean |
Returns true if allows focus out of end edge of GuidedStepFragment, false otherwise. |
open Boolean |
Returns true if allows focus out of start edge of GuidedStepFragment, false otherwise. |
open Boolean | |
open Unit |
notifyActionChanged(position: Int) Notify an action has changed and update its UI. |
open Unit |
notifyButtonActionChanged(position: Int) Notify an button action has changed and update its UI. |
open Unit | |
open Unit |
onCreateActions(@NonNull actions: MutableList<GuidedAction!>, savedInstanceState: Bundle!) Fills out the set of actions available to the user. |
open GuidedActionsStylist! |
Creates the presenter used to style the guided actions panel. |
open View! |
onCreateBackgroundView(inflater: LayoutInflater!, container: ViewGroup!, savedInstanceState: Bundle!) Called by onCreateView to inflate background view. |
open Unit |
onCreateButtonActions(@NonNull actions: MutableList<GuidedAction!>, savedInstanceState: Bundle!) Fills out the set of actions shown at right available to the user. |
open GuidedActionsStylist! |
Creates the presenter used to style a sided actions panel for button only. |
open GuidanceStylist.Guidance |
onCreateGuidance(savedInstanceState: Bundle!) Returns the information required to provide guidance to the user. |
open GuidanceStylist! |
Creates the presenter used to style the guidance panel. |
open View! |
onCreateView(inflater: LayoutInflater!, container: ViewGroup!, savedInstanceState: Bundle!) |
open Unit | |
open Unit |
onGuidedActionClicked(action: GuidedAction!) Callback invoked when an action is taken by the user. |
open Unit |
onGuidedActionEditCanceled(action: GuidedAction!) Callback invoked when an action has been canceled editing, for example when user closes IME window by BACK key. |
open Unit |
onGuidedActionEdited(action: GuidedAction!) Callback invoked when an action's title or description has been edited, this happens either when user clicks confirm button in IME or user closes IME window by BACK key. |
open Long |
onGuidedActionEditedAndProceed(action: GuidedAction!) Callback invoked when an action has been edited, for example when user clicks confirm button in IME window. |
open Unit |
onGuidedActionFocused(action: GuidedAction!) Callback invoked when an action is focused (made to be the current selection) by the user. |
open Int |
Returns the theme used for styling the fragment. |
open Unit |
onResume() |
open Unit |
onSaveInstanceState(outState: Bundle!) |
open Boolean |
onSubGuidedActionClicked(action: GuidedAction!) Callback invoked when an action in sub actions is taken by the user. |
open Unit |
openInEditMode(action: GuidedAction!) Opens the provided action in edit mode and raises ime. |
open Unit |
popBackStackToGuidedStepFragment(guidedStepFragmentClass: Class<Any!>!, flags: Int) Convenient method to pop to fragment with Given class. |
open Unit |
setActions(actions: MutableList<GuidedAction!>!) Sets the list of GuidedActions that the user may take in this fragment. |
open Unit |
setActionsDiffCallback(diffCallback: DiffCallback<GuidedAction!>!) Sets the RecyclerView DiffCallback used when |
open Unit |
setButtonActions(actions: MutableList<GuidedAction!>!) Sets the list of button GuidedActions that the user may take in this fragment. |
open Unit |
setSelectedActionPosition(position: Int) Scrolls the action list to the position indicated, selecting that action's view. |
open Unit |
setSelectedButtonActionPosition(position: Int) Scrolls the action list to the position indicated, selecting that button action's view. |
open Unit |
setUiStyle(style: Int) Set UI style to fragment arguments. |
Protected methods |
|
---|---|
open Unit |
Called when this fragment is added to FragmentTransaction with |
open Unit |
Called by Constructor to provide fragment transitions. |
Constants
EXTRA_UI_STYLE
static val EXTRA_UI_STYLE: String
Fragment argument name for UI style. The argument value is persisted in fragment state and used to select fragment transition. The value is initially UI_STYLE_ENTRANCE
and might be changed in one of the three helper functions:
addAsRoot(Activity, GuidedStepFragment, int)
sets toUI_STYLE_ACTIVITY_ROOT
add(FragmentManager, GuidedStepFragment)
oradd(FragmentManager, * GuidedStepFragment, int)
sets it toUI_STYLE_REPLACE
if there is already a GuidedStepFragment on stack.finishGuidedStepFragments()
changes current GuidedStepFragment toUI_STYLE_ENTRANCE
for the non activity case. This is a special case that changes the transition settings after fragment has been created, in order to force current GuidedStepFragment run a return transition ofUI_STYLE_ENTRANCE
Argument value can be either:
Value: "uiStyle"
UI_STYLE_ACTIVITY_ROOT
static val UI_STYLE_ACTIVITY_ROOT: Int
One possible value of argument EXTRA_UI_STYLE
. This is the case that we show first GuidedStepFragment in a separate activity. The default behavior of this style:
- Enter transition is assigned null (will rely on activity transition), exit transition is same as
UI_STYLE_ENTRANCE
. Note: Changing exit transition by UI style is not working because fragment transition asks for exit transition before UI style is restored in Fragment.onCreate().
Value: 2
UI_STYLE_DEFAULT
static valUI_STYLE_DEFAULT: Int
Deprecated: Same value as UI_STYLE_REPLACE
.
Value: 0
UI_STYLE_ENTRANCE
static val UI_STYLE_ENTRANCE: Int
Default value for argument EXTRA_UI_STYLE
. The default value is assigned in GuidedStepFragment constructor. This is the case that we show GuidedStepFragment on top of other content. The default behavior of this style:
- Enter transition slides in from two sides, exit transition slide out to START(left). Background will be faded in. Note: Changing exit transition by UI style is not working because fragment transition asks for exit transition before UI style is restored in Fragment .onCreate().
finishGuidedStepFragments()
also changes the top GuidedStepFragment to UI_STYLE_ENTRANCE in order to run the return transition (reverse of enter transition) of UI_STYLE_ENTRANCE.
Value: 1
UI_STYLE_REPLACE
static val UI_STYLE_REPLACE: Int
This is the case that we use GuidedStepFragment to replace another existing GuidedStepFragment when moving forward to next step. Default behavior of this style is:
- Enter transition slides in from END(right), exit transition same as
UI_STYLE_ENTRANCE
.
Value: 0
Public constructors
<init>
GuidedStepFragment()
Public methods
add
open static fun add(fragmentManager: FragmentManager!, fragment: GuidedStepFragment!): Int
Adds the specified GuidedStepFragment to the fragment stack, replacing any existing GuidedStepFragments in the stack, and configuring the fragment-to-fragment custom transitions. A backstack entry is added, so the fragment will be dismissed when BACK key is pressed.
UI_STYLE_REPLACE
UI_STYLE_ENTRANCE
Note: currently fragments added using this method must be created programmatically rather than via XML.
Parameters | |
---|---|
fragmentManager |
FragmentManager!: The FragmentManager to be used in the transaction. |
fragment |
FragmentManager!: The GuidedStepFragment to be inserted into the fragment stack. |
Return | |
---|---|
Int: The ID returned by the call FragmentTransaction.commit. |
add
open static fun add(fragmentManager: FragmentManager!, fragment: GuidedStepFragment!, id: Int): Int
Adds the specified GuidedStepFragment to the fragment stack, replacing any existing GuidedStepFragments in the stack, and configuring the fragment-to-fragment custom transitions. A backstack entry is added, so the fragment will be dismissed when BACK key is pressed.
UI_STYLE_REPLACE
and onAddSharedElementTransition(FragmentTransaction, GuidedStepFragment)
will be called to perform shared element transition between GuidedStepFragments. UI_STYLE_ENTRANCE
Note: currently fragments added using this method must be created programmatically rather than via XML.
Parameters | |
---|---|
fragmentManager |
FragmentManager!: The FragmentManager to be used in the transaction. |
fragment |
FragmentManager!: The GuidedStepFragment to be inserted into the fragment stack. |
id |
FragmentManager!: The id of container to add GuidedStepFragment, can be android.R.id.content. |
Return | |
---|---|
Int: The ID returned by the call FragmentTransaction.commit. |
addAsRoot
open static fun addAsRoot(activity: Activity!, fragment: GuidedStepFragment!, id: Int): Int
Adds the specified GuidedStepFragment as content of Activity; no backstack entry is added so the activity will be dismissed when BACK key is pressed. The method is typically called in Activity.onCreate() when savedInstanceState is null. When savedInstanceState is not null, the Activity is being restored, do not call addAsRoot() to duplicate the Fragment restored by FragmentManager. UI_STYLE_ACTIVITY_ROOT
is assigned. Note: currently fragments added using this method must be created programmatically rather than via XML.
Parameters | |
---|---|
activity |
Activity!: The Activity to be used to insert GuidedstepFragment. |
fragment |
Activity!: The GuidedStepFragment to be inserted into the fragment stack. |
id |
Activity!: The id of container to add GuidedStepFragment, can be android.R.id.content. |
Return | |
---|---|
Int: The ID returned by the call FragmentTransaction.commit, or -1 there is already GuidedStepFragment. |
collapseAction
open fun collapseAction(withTransition: Boolean): Unit
Collapse action which either has a sub actions list or action with GuidedAction#hasEditableActivatorView()
is true.
Parameters | |
---|---|
withTransition |
Boolean: True to run transition animation, false otherwise. |
expandAction
open fun expandAction(action: GuidedAction!, withTransition: Boolean): Unit
Expand a given action with sub actions list or GuidedAction#hasEditableActivatorView()
is true. The method must be called after onCreateView(LayoutInflater, ViewGroup, Bundle)
creates fragment view.
Parameters | |
---|---|
action |
GuidedAction!: GuidedAction to expand. |
withTransition |
GuidedAction!: True to run transition animation, false otherwise. |
expandSubActions
open fun expandSubActions(action: GuidedAction!): Unit
Expand a given action's sub actions list.
Parameters | |
---|---|
action |
GuidedAction!: GuidedAction to expand. |
See Also
findActionById
open fun findActionById(id: Long): GuidedAction!
Find GuidedAction by Id.
Parameters | |
---|---|
id |
Long: Id of the action to search. |
Return | |
---|---|
GuidedAction!: GuidedAction object or null if not found. |
findActionPositionById
open fun findActionPositionById(id: Long): Int
Find GuidedAction position in array by Id.
Parameters | |
---|---|
id |
Long: Id of the action to search. |
Return | |
---|---|
Int: position of GuidedAction object in array or -1 if not found. |
findButtonActionById
open fun findButtonActionById(id: Long): GuidedAction!
Find button GuidedAction by Id.
Parameters | |
---|---|
id |
Long: Id of the button action to search. |
Return | |
---|---|
GuidedAction!: GuidedAction object or null if not found. |
findButtonActionPositionById
open fun findButtonActionPositionById(id: Long): Int
Find button GuidedAction position in array by Id.
Parameters | |
---|---|
id |
Long: Id of the button action to search. |
Return | |
---|---|
Int: position of GuidedAction object in array or -1 if not found. |
finishGuidedStepFragments
open fun finishGuidedStepFragments(): Unit
Convenient method to close GuidedStepFragments on top of other content or finish Activity if GuidedStepFragments were started in a separate activity. Pops all stack entries including UI_STYLE_ENTRANCE
; if UI_STYLE_ENTRANCE
is not found, finish the activity. Note that this method must be paired with add(FragmentManager, GuidedStepFragment, * int)
which sets up the stack entry name for finding which fragment we need to pop back to.
getActionItemView
open fun getActionItemView(position: Int): View!
Returns the view corresponding to the action at the indicated position in the list of actions for this fragment.
Parameters | |
---|---|
position |
Int: The integer position of the action of interest. |
Return | |
---|---|
View!: The View corresponding to the action at the indicated position, or null if that action is not currently onscreen. |
getActions
open fun getActions(): MutableList<GuidedAction!>!
Returns the list of GuidedActions that the user may take in this fragment.
Return | |
---|---|
MutableList<GuidedAction!>!: The list of GuidedActions for this fragment. |
getButtonActionItemView
open fun getButtonActionItemView(position: Int): View!
Returns the view corresponding to the button action at the indicated position in the list of actions for this fragment.
Parameters | |
---|---|
position |
Int: The integer position of the button action of interest. |
Return | |
---|---|
View!: The View corresponding to the button action at the indicated position, or null if that action is not currently onscreen. |
getButtonActions
open fun getButtonActions(): MutableList<GuidedAction!>!
Returns the list of button GuidedActions that the user may take in this fragment.
Return | |
---|---|
MutableList<GuidedAction!>!: The list of button GuidedActions for this fragment. |
getCurrentGuidedStepFragment
open static fun getCurrentGuidedStepFragment(fm: FragmentManager!): GuidedStepFragment!
Returns the current GuidedStepFragment on the fragment transaction stack.
Return | |
---|---|
GuidedStepFragment!: The current GuidedStepFragment, if any, on the fragment transaction stack. |
getGuidanceStylist
open fun getGuidanceStylist(): GuidanceStylist!
Returns the GuidanceStylist that displays guidance information for the user.
Return | |
---|---|
GuidanceStylist!: The GuidanceStylist for this fragment. |
getGuidedActionsStylist
open fun getGuidedActionsStylist(): GuidedActionsStylist!
Returns the GuidedActionsStylist that displays the actions the user may take.
Return | |
---|---|
GuidedActionsStylist!: The GuidedActionsStylist for this fragment. |
getGuidedButtonActionsStylist
open fun getGuidedButtonActionsStylist(): GuidedActionsStylist!
Returns the GuidedActionsStylist that displays the button actions the user may take.
Return | |
---|---|
GuidedActionsStylist!: The GuidedActionsStylist for this fragment. |
getSelectedActionPosition
open fun getSelectedActionPosition(): Int
Returns the position if the currently selected GuidedAction.
Return | |
---|---|
Int: position The integer position of the currently selected action. |
getSelectedButtonActionPosition
open fun getSelectedButtonActionPosition(): Int
Returns the position if the currently selected button GuidedAction.
Return | |
---|---|
Int: position The integer position of the currently selected button action. |
getUiStyle
open fun getUiStyle(): Int
Read UI style from fragment arguments. Default value is UI_STYLE_ENTRANCE
when fragment is first initialized. UI style is used to choose different fragment transition animations and determine if this is the first GuidedStepFragment on backstack.
Return | |
---|---|
Int: UI_STYLE_ACTIVITY_ROOT UI_STYLE_REPLACE or UI_STYLE_ENTRANCE . |
See Also
isExpanded
open fun isExpanded(): Boolean
Return | |
---|---|
Boolean: True if is current expanded including subactions list or action with GuidedAction#hasEditableActivatorView() is true. |
isFocusOutEndAllowed
open fun isFocusOutEndAllowed(): Boolean
Returns true if allows focus out of end edge of GuidedStepFragment, false otherwise. Default value is false, the reason is to disable FocusFinder to find focusable views beneath content of GuidedStepFragment. Subclass may override.
Return | |
---|---|
Boolean: True if allows focus out of end edge of GuidedStepFragment. |
isFocusOutStartAllowed
open fun isFocusOutStartAllowed(): Boolean
Returns true if allows focus out of start edge of GuidedStepFragment, false otherwise. Default value is false, the reason is to disable FocusFinder to find focusable views beneath content of GuidedStepFragment. Subclass may override.
Return | |
---|---|
Boolean: True if allows focus out of start edge of GuidedStepFragment. |
isSubActionsExpanded
open fun isSubActionsExpanded(): Boolean
Return | |
---|---|
Boolean: True if the sub actions list is expanded, false otherwise. |
notifyActionChanged
open fun notifyActionChanged(position: Int): Unit
Notify an action has changed and update its UI.
Parameters | |
---|---|
position |
Int: Position of the GuidedAction in array. |
notifyButtonActionChanged
open fun notifyButtonActionChanged(position: Int): Unit
Notify an button action has changed and update its UI.
Parameters | |
---|---|
position |
Int: Position of the button GuidedAction in array. |
onCreateActions
open fun onCreateActions(@NonNull actions: MutableList<GuidedAction!>, savedInstanceState: Bundle!): Unit
Fills out the set of actions available to the user. This hook is called during
. The default leaves the list of actions empty; subclasses should override.
Parameters | |
---|---|
actions |
MutableList<GuidedAction!>: A non-null, empty list ready to be populated. |
savedInstanceState |
MutableList<GuidedAction!>: The saved instance state from onCreate. |
onCreateActionsStylist
open fun onCreateActionsStylist(): GuidedActionsStylist!
Creates the presenter used to style the guided actions panel. The default implementation returns a basic GuidedActionsStylist.
Return | |
---|---|
GuidedActionsStylist!: The GuidedActionsStylist used in this fragment. |
onCreateBackgroundView
open fun onCreateBackgroundView(inflater: LayoutInflater!, container: ViewGroup!, savedInstanceState: Bundle!): View!
Called by onCreateView to inflate background view. Default implementation loads view from R.layout#lb_guidedstep_background which holds a reference to guidedStepBackground.
Parameters | |
---|---|
inflater |
LayoutInflater!: LayoutInflater to load background view. |
container |
LayoutInflater!: Parent view of background view. |
savedInstanceState |
LayoutInflater!: |
Return | |
---|---|
View!: Created background view or null if no background. |
onCreateButtonActions
open fun onCreateButtonActions(@NonNull actions: MutableList<GuidedAction!>, savedInstanceState: Bundle!): Unit
Fills out the set of actions shown at right available to the user. This hook is called during onCreate
. The default leaves the list of actions empty; subclasses may override.
Parameters | |
---|---|
actions |
MutableList<GuidedAction!>: A non-null, empty list ready to be populated. |
savedInstanceState |
MutableList<GuidedAction!>: The saved instance state from onCreate. |
onCreateButtonActionsStylist
open fun onCreateButtonActionsStylist(): GuidedActionsStylist!
Creates the presenter used to style a sided actions panel for button only. The default implementation returns a basic GuidedActionsStylist.
Return | |
---|---|
GuidedActionsStylist!: The GuidedActionsStylist used in this fragment. |
onCreateGuidance
@NonNull open fun onCreateGuidance(savedInstanceState: Bundle!): GuidanceStylist.Guidance
Returns the information required to provide guidance to the user. This hook is called during onCreateView
. May be overridden to return a custom subclass of for use in a subclass of GuidanceStylist
. The default returns a Guidance object with empty fields; subclasses should override.
Parameters | |
---|---|
savedInstanceState |
Bundle!: The saved instance state from onCreateView. |
Return | |
---|---|
GuidanceStylist.Guidance: The Guidance object representing the information used to guide the user. |
onCreateGuidanceStylist
open fun onCreateGuidanceStylist(): GuidanceStylist!
Creates the presenter used to style the guidance panel. The default implementation returns a basic GuidanceStylist.
Return | |
---|---|
GuidanceStylist!: The GuidanceStylist used in this fragment. |
onCreateView
open fun onCreateView(inflater: LayoutInflater!, container: ViewGroup!, savedInstanceState: Bundle!): View!
onDestroyView
open fun onDestroyView(): Unit
onGuidedActionClicked
open fun onGuidedActionClicked(action: GuidedAction!): Unit
Callback invoked when an action is taken by the user. Subclasses should override in order to act on the user's decisions.
Parameters | |
---|---|
action |
GuidedAction!: The chosen action. |
onGuidedActionEditCanceled
open fun onGuidedActionEditCanceled(action: GuidedAction!): Unit
Callback invoked when an action has been canceled editing, for example when user closes IME window by BACK key. Default implementation calls deprecated method onGuidedActionEdited(GuidedAction)
.
Parameters | |
---|---|
action |
GuidedAction!: The action which has been canceled editing. |
onGuidedActionEdited
open funonGuidedActionEdited(action: GuidedAction!): Unit
Deprecated: Override onGuidedActionEditedAndProceed(GuidedAction)
and/or onGuidedActionEditCanceled(GuidedAction)
.
Callback invoked when an action's title or description has been edited, this happens either when user clicks confirm button in IME or user closes IME window by BACK key.
onGuidedActionEditedAndProceed
open fun onGuidedActionEditedAndProceed(action: GuidedAction!): Long
Callback invoked when an action has been edited, for example when user clicks confirm button in IME window. Default implementation calls deprecated method onGuidedActionEdited(GuidedAction)
and returns GuidedAction#ACTION_ID_NEXT
.
Parameters | |
---|---|
action |
GuidedAction!: The action that has been edited. |
Return | |
---|---|
Long: ID of the action will be focused or GuidedAction#ACTION_ID_NEXT , GuidedAction#ACTION_ID_CURRENT . |
onGuidedActionFocused
open fun onGuidedActionFocused(action: GuidedAction!): Unit
Callback invoked when an action is focused (made to be the current selection) by the user.
onProvideTheme
open fun onProvideTheme(): Int
Returns the theme used for styling the fragment. The default returns -1, indicating that the host Activity's theme should be used.
Return | |
---|---|
Int: The theme resource ID of the theme to use in this fragment, or -1 to use the host Activity's theme. |
onResume
open fun onResume(): Unit
onSubGuidedActionClicked
open fun onSubGuidedActionClicked(action: GuidedAction!): Boolean
Callback invoked when an action in sub actions is taken by the user. Subclasses should override in order to act on the user's decisions. Default return value is true to close the sub actions list.
Parameters | |
---|---|
action |
GuidedAction!: The chosen action. |
Return | |
---|---|
Boolean: true to collapse the sub actions list, false to keep it expanded. |
openInEditMode
open fun openInEditMode(action: GuidedAction!): Unit
Opens the provided action in edit mode and raises ime. This can be used to programmatically skip the extra click required to go into edit mode. This method can be invoked in onCreateView(LayoutInflater, ViewGroup, Bundle)
.
popBackStackToGuidedStepFragment
open fun popBackStackToGuidedStepFragment(guidedStepFragmentClass: Class<Any!>!, flags: Int): Unit
Convenient method to pop to fragment with Given class.
Parameters | |
---|---|
guidedStepFragmentClass |
Class<Any!>!: Name of the Class of GuidedStepFragment to pop to. |
flags |
Class<Any!>!: Either 0 or FragmentManager#POP_BACK_STACK_INCLUSIVE . |
setActions
open fun setActions(actions: MutableList<GuidedAction!>!): Unit
Sets the list of GuidedActions that the user may take in this fragment. Uses DiffCallback set by setActionsDiffCallback(DiffCallback)
.
Parameters | |
---|---|
actions |
MutableList<GuidedAction!>!: The list of GuidedActions for this fragment. |
setActionsDiffCallback
open fun setActionsDiffCallback(diffCallback: DiffCallback<GuidedAction!>!): Unit
Sets the RecyclerView DiffCallback used when setActions(List)
is called. By default GuidedStepFragment uses androidx.leanback.widget.GuidedActionDiffCallback
. Sets it to null if app wants to refresh the whole list.
Parameters | |
---|---|
diffCallback |
DiffCallback<GuidedAction!>!: DiffCallback used in setActions(List) . |
setButtonActions
open fun setButtonActions(actions: MutableList<GuidedAction!>!): Unit
Sets the list of button GuidedActions that the user may take in this fragment.
Parameters | |
---|---|
actions |
MutableList<GuidedAction!>!: The list of button GuidedActions for this fragment. |
setSelectedActionPosition
open fun setSelectedActionPosition(position: Int): Unit
Scrolls the action list to the position indicated, selecting that action's view.
Parameters | |
---|---|
position |
Int: The integer position of the action of interest. |
setSelectedButtonActionPosition
open fun setSelectedButtonActionPosition(position: Int): Unit
Scrolls the action list to the position indicated, selecting that button action's view.
Parameters | |
---|---|
position |
Int: The integer position of the button action of interest. |
setUiStyle
open fun setUiStyle(style: Int): Unit
Set UI style to fragment arguments. Default value is UI_STYLE_ENTRANCE
when fragment is first initialized. UI style is used to choose different fragment transition animations and determine if this is the first GuidedStepFragment on backstack. In most cases app does not directly call this method, app calls helper function add(FragmentManager, GuidedStepFragment, int)
. However if the app creates Fragment transaction and controls backstack by itself, it would need call setUiStyle() to select the fragment transition to use.
Parameters | |
---|---|
style |
Int: UI_STYLE_ACTIVITY_ROOT UI_STYLE_REPLACE or UI_STYLE_ENTRANCE . |
Protected methods
onAddSharedElementTransition
protected open fun onAddSharedElementTransition(: FragmentTransaction!, : GuidedStepFragment!): Unit
Called when this fragment is added to FragmentTransaction with UI_STYLE_REPLACE
(aka when the GuidedStepFragment replacing an existing GuidedStepFragment). Default implementation establishes connections between action background views to morph action background bounds change from disappearing GuidedStepFragment into this GuidedStepFragment. The default implementation heavily relies on GuidedActionsStylist
's layout, app may override this method when modifying the default layout of GuidedActionsStylist
.
Parameters | |
---|---|
ft |
FragmentTransaction!: The FragmentTransaction to add shared element. |
disappearing |
FragmentTransaction!: The disappearing fragment. |
onProvideFragmentTransitions
protected open fun onProvideFragmentTransitions(): Unit
Called by Constructor to provide fragment transitions. The default implementation assigns transitions based on getUiStyle()
:
-
UI_STYLE_REPLACE
Slide from/to end(right) for enter transition, slide from/to start(left) for exit transition, shared element enter transition is set to ChangeBounds. -
UI_STYLE_ENTRANCE
Enter transition is set to slide from both sides, exit transition is same asUI_STYLE_REPLACE
, no shared element enter transition. -
UI_STYLE_ACTIVITY_ROOT
Enter transition is set to null and app should rely on activity transition, exit transition is same asUI_STYLE_REPLACE
, no shared element enter transition.
The default implementation heavily relies on GuidedActionsStylist
and GuidanceStylist
layout, app may override this method when modifying the default layout of GuidedActionsStylist
or GuidanceStylist
.
TIP: because the fragment view is removed during fragment transition, in general app cannot use two Visibility transition together. Workaround is to create your own Visibility transition that controls multiple animators (e.g. slide and fade animation in one Transition class).