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
, 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
- 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. |
op |