O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

GuidedStepFragment

open class GuidedStepFragment : 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:

Clients use following helper functions to add GuidedStepFragment to Activity or FragmentManager:

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 method. This can be useful if a subclass is used across multiple Activities.

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

static Int

static Int

Default value for argument EXTRA_UI_STYLE.

static Int

This is the case that we use GuidedStepFragment to replace another existing GuidedStepFragment when moving forward to next step.

Public constructors

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 GuidedAction#hasEditableActivatorView() is true.

open Unit

Collapse sub actions list.

open Unit
expandAction(action: GuidedAction!, withTransition: Boolean)

Expand a given action with sub actions list or GuidedAction#hasEditableActivatorView() is true.

open Unit

Expand a given action's sub actions list.

open GuidedAction!

Find GuidedAction by Id.

open Int

Find GuidedAction position in array by Id.

open GuidedAction!

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!

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!

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

Notify an action has changed and update its UI.

open Unit

Notify an button action has changed and update its UI.

open Unit
onCreate(savedInstanceState: Bundle?)

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

Callback invoked when an action is taken by the user.

open Unit

Callback invoked when an action has been canceled editing, for example when user closes IME window by BACK key.

open Unit

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

Callback invoked when an action has been edited, for example when user clicks confirm button in IME window.

open Unit

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

open Unit

open Boolean

Callback invoked when an action in sub actions is taken by the user.

open Unit

Opens the provided action in edit mode and raises ime.

open Unit
popBackStackToGuidedStepFragment(guidedStepFragmentClass: Class<*>!, flags: Int)

Convenient method to pop to fragment with Given class.

open Unit

Sets the list of GuidedActions that the user may take in this fragment.

open Unit

Sets the RecyclerView DiffCallback used when setActions(List) is called.

open Unit

Sets the list of button GuidedActions that the user may take in this fragment.

open Unit

Scrolls the action list to the position indicated, selecting that action's view.

open Unit

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 UI_STYLE_REPLACE (aka when the GuidedStepFragment replacing an existing GuidedStepFragment).

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:

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 val UI_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().
When popping multiple GuidedStepFragment, 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.

  • If current fragment on stack is GuidedStepFragment: assign UI_STYLE_REPLACE
  • If current fragment on stack is not GuidedStepFragment: assign 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 GuidedStepFragment!: 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.

  • If current fragment on stack is GuidedStepFragment: assign UI_STYLE_REPLACE and onAddSharedElementTransition(FragmentTransaction, GuidedStepFragment) will be called to perform shared element transition between GuidedStepFragments.
  • If current fragment on stack is not GuidedStepFragment: assign 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 GuidedStepFragment!: The GuidedStepFragment to be inserted into the fragment stack.
    id Int: 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 GuidedStepFragment!: The GuidedStepFragment to be inserted into the fragment stack.
    id Int: 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.

    collapseSubActions

    open fun collapseSubActions(): Unit

    Collapse sub actions list.

    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 Boolean: 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.

    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