GuidedStepSupportFragment
open class GuidedStepSupportFragment : Fragment, FocusListener
kotlin.Any | ||
↳ | androidx.fragment.app.Fragment | |
↳ | androidx.leanback.app.GuidedStepSupportFragment |
A GuidedStepSupportFragment 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 GuidedStepSupportFragment 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 GuidedStepSupportFragment to Activity or FragmentManager:
addAsRoot(FragmentActivity, GuidedStepSupportFragment, int)
, to be called during Activity onCreate, adds GuidedStepSupportFragment as the first Fragment in activity.add(FragmentManager, GuidedStepSupportFragment)
oradd(FragmentManager, * GuidedStepSupportFragment, int)
, to add GuidedStepSupportFragment on top of existing Fragments or replacing existing GuidedStepSupportFragment when moving forward to next step.finishGuidedStepSupportFragments()
can either finish the activity or pop all GuidedStepSupportFragment 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
GuidedStepSupportFragment 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.
GuidedStepSupportFragments 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 GuidedStepSupportFragment 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 GuidedStepSupportFragment 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
GuidedStepSupportFragments can be grouped together to provide a guided sequence. GuidedStepSupportFragments 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 GuidedStepSupportFragments 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 GuidedStepSupportFragment to replace another existing GuidedStepSupportFragment when moving forward to next step. |
Public constructors | |
---|---|
<init>() |
Public methods | |
---|---|
open static Int |
add(fragmentManager: FragmentManager!, fragment: GuidedStepSupportFragment!) Adds the specified GuidedStepSupportFragment to the fragment stack, replacing any existing GuidedStepSupportFragments in the stack, and configuring the fragment-to-fragment custom transitions. |
open static Int |
add(fragmentManager: FragmentManager!, fragment: GuidedStepSupportFragment!, id: Int) Adds the specified GuidedStepSupportFragment to the fragment stack, replacing any existing GuidedStepSupportFragments in the stack, and configuring the fragment-to-fragment custom transitions. |
open static Int |
addAsRoot(activity: FragmentActivity!, fragment: GuidedStepSupportFragment!, id: Int) Adds the specified GuidedStepSupportFragment 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! |