Android APIs
public class

FullWidthDetailsOverviewRowPresenter

extends RowPresenter
java.lang.Object
   ↳ android.support.v17.leanback.widget.Presenter
     ↳ android.support.v17.leanback.widget.RowPresenter
       ↳ android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter

Class Overview

Renders a DetailsOverviewRow to display an overview of an item. Typically this row will be the first row in a fragment such as the DetailsFragment. The View created by the FullWidthDetailsOverviewRowPresenter is made in three parts: logo view on the left, action list view on the top and a customizable detailed description view on the right.

The detailed description is rendered using a Presenter passed in FullWidthDetailsOverviewRowPresenter(Presenter). Typically this will be an instance of AbstractDetailsDescriptionPresenter. The application can access the detailed description ViewHolder from getDetailsDescriptionViewHolder().

The logo view is rendered using a customizable DetailsOverviewLogoPresenter passed in FullWidthDetailsOverviewRowPresenter(Presenter, DetailsOverviewLogoPresenter). The application can access the logo ViewHolder from getLogoViewHolder().

To support activity shared element transition, call setListener(Listener) with FullWidthDetailsOverviewSharedElementHelper during Activity's onCreate(). Application is free to create its own "shared element helper" class using the Listener for image binding. Call setParticipatingEntranceTransition(boolean) with false

The view has three states: STATE_HALF STATE_FULL and STATE_SMALL. See DetailsFragment where it switches states based on selected row position.

Summary

Nested Classes
class FullWidthDetailsOverviewRowPresenter.Listener Listeners for events on ViewHolder. 
class FullWidthDetailsOverviewRowPresenter.ViewHolder A ViewHolder for the DetailsOverviewRow. 
Constants
int ALIGN_MODE_MIDDLE This is the alignment mode that the ending edge of logo and the starting edge of description align to the middle of the overview view.
int ALIGN_MODE_START This is the alignment mode that the logo and description align to the starting edge of the overview view.
int STATE_FULL This is the state when the view covers full width and height of screen.
int STATE_HALF This is the default state corresponding to layout file.
int STATE_SMALL This is the state where the view shrinks to a small banner.
[Expand]
Inherited Constants
From class android.support.v17.leanback.widget.RowPresenter
Fields
protected int mInitialState
Public Constructors
FullWidthDetailsOverviewRowPresenter(Presenter detailsPresenter)
Constructor for a FullWidthDetailsOverviewRowPresenter.
FullWidthDetailsOverviewRowPresenter(Presenter detailsPresenter, DetailsOverviewLogoPresenter logoPresenter)
Constructor for a FullWidthDetailsOverviewRowPresenter.
Public Methods
final int getActionsBackgroundColor()
Returns the background color of actions.
final int getAlignmentMode()
Returns alignment mode of Description.
final int getBackgroundColor()
Returns the background color.
final int getInitialState()
Returns the initial state used to create ViewHolder.
OnActionClickedListener getOnActionClickedListener()
Returns the listener for Action click events.
final boolean isParticipatingEntranceTransition()
Returns true if the overview should be part of shared element transition.
final boolean isUsingDefaultSelectEffect()
Returns true if this RowPresenter is using the default dimming effect.
final void notifyOnBindLogo(FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder)
Called by DetailsOverviewLogoPresenter to notify logo was bound to view.
final void setActionsBackgroundColor(int color)
Sets the background color for Action Bar.
final void setAlignmentMode(int alignmentMode)
Set alignment mode of Description.
final void setBackgroundColor(int color)
Sets the background color.
void setEntranceTransitionState(RowPresenter.ViewHolder holder, boolean afterEntrance)
Changes the visibility of views.
final void setInitialState(int state)
Change the initial state used to create ViewHolder.
final void setListener(FullWidthDetailsOverviewRowPresenter.Listener listener)
Set listener for details overview presenter.
void setOnActionClickedListener(OnActionClickedListener listener)
Sets the listener for Action click events.
final void setParticipatingEntranceTransition(boolean participating)
Sets if the overview should be part of shared element transition.
final void setState(FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int state)
Switch state of a ViewHolder.
Protected Methods
RowPresenter.ViewHolder createRowViewHolder(ViewGroup parent)
Called to create a ViewHolder object for a Row.
int getLayoutResourceId()
Get resource id to inflate the layout.
boolean isClippingChildren()
Returns true if the Row view should clip it's children.
void onBindRowViewHolder(RowPresenter.ViewHolder holder, Object item)
Binds the given row object to the given ViewHolder.
void onLayoutLogo(FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState, boolean logoChanged)
Layout logo position based on current state.
void onLayoutOverviewFrame(FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState, boolean logoChanged)
Layout overview frame based on current state.
void onRowViewAttachedToWindow(RowPresenter.ViewHolder vh)
Invoked when the row view is attached to the window.
void onRowViewDetachedFromWindow(RowPresenter.ViewHolder vh)
Invoked when the row view is detached from the window.
void onSelectLevelChanged(RowPresenter.ViewHolder holder)
Callback when the select level changes.
void onStateChanged(FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState)
Called when getState() changes.
void onUnbindRowViewHolder(RowPresenter.ViewHolder holder)
Unbinds the given ViewHolder.
[Expand]
Inherited Methods
From class android.support.v17.leanback.widget.RowPresenter
From class android.support.v17.leanback.widget.Presenter
From class java.lang.Object
From interface android.support.v17.leanback.widget.FacetProvider

Constants

public static final int ALIGN_MODE_MIDDLE

This is the alignment mode that the ending edge of logo and the starting edge of description align to the middle of the overview view. Note that this might not be the exact horizontal center of the overview view.

Constant Value: 1 (0x00000001)

public static final int ALIGN_MODE_START

This is the alignment mode that the logo and description align to the starting edge of the overview view.

Constant Value: 0 (0x00000000)

public static final int STATE_FULL

This is the state when the view covers full width and height of screen.

Constant Value: 1 (0x00000001)

public static final int STATE_HALF

This is the default state corresponding to layout file. The view takes full width of screen and covers bottom half of the screen.

Constant Value: 0 (0x00000000)

public static final int STATE_SMALL

This is the state where the view shrinks to a small banner.

Constant Value: 2 (0x00000002)

Fields

protected int mInitialState

Public Constructors

public FullWidthDetailsOverviewRowPresenter (Presenter detailsPresenter)

Constructor for a FullWidthDetailsOverviewRowPresenter.

Parameters
detailsPresenter The Presenter used to render the detailed description of the row.

public FullWidthDetailsOverviewRowPresenter (Presenter detailsPresenter, DetailsOverviewLogoPresenter logoPresenter)

Constructor for a FullWidthDetailsOverviewRowPresenter.

Parameters
detailsPresenter The Presenter used to render the detailed description of the row.
logoPresenter The Presenter used to render the logo view.

Public Methods

public final int getActionsBackgroundColor ()

Returns the background color of actions. If setActionsBackgroundColor(int) is not called, transparent is returned.

public final int getAlignmentMode ()

Returns alignment mode of Description.

Returns

public final int getBackgroundColor ()

Returns the background color. If setBackgroundColor(int), transparent is returned.

public final int getInitialState ()

Returns the initial state used to create ViewHolder.

public OnActionClickedListener getOnActionClickedListener ()

Returns the listener for Action click events.

public final boolean isParticipatingEntranceTransition ()

Returns true if the overview should be part of shared element transition.

public final boolean isUsingDefaultSelectEffect ()

Returns true if this RowPresenter is using the default dimming effect. A subclass may (most likely) return false and override onSelectLevelChanged(ViewHolder).

public final void notifyOnBindLogo (FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder)

Called by DetailsOverviewLogoPresenter to notify logo was bound to view. Application should not directly call this method.

Parameters
viewHolder The row ViewHolder that has logo bound to view.

public final void setActionsBackgroundColor (int color)

Sets the background color for Action Bar. If not set, a default from the theme will be used.

public final void setAlignmentMode (int alignmentMode)

Set alignment mode of Description.

Parameters
alignmentMode One of ALIGN_MODE_MIDDLE or ALIGN_MODE_START

public final void setBackgroundColor (int color)

Sets the background color. If not set, a default from the theme will be used.

public void setEntranceTransitionState (RowPresenter.ViewHolder holder, boolean afterEntrance)

Changes the visibility of views. The entrance transition will be run against the views that change visibilities. A subclass may override and begin with calling super.setEntranceTransitionState(). This method is called by the fragment, it should not call it directly by the application.

public final void setInitialState (int state)

Change the initial state used to create ViewHolder.

public final void setListener (FullWidthDetailsOverviewRowPresenter.Listener listener)

Set listener for details overview presenter. Must be called before creating ViewHolder.

public void setOnActionClickedListener (OnActionClickedListener listener)

Sets the listener for Action click events.

public final void setParticipatingEntranceTransition (boolean participating)

Sets if the overview should be part of shared element transition.

public final void setState (FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int state)

Switch state of a ViewHolder.

Parameters
viewHolder The ViewHolder to change state.
state New state, can be STATE_FULL, STATE_HALF or STATE_SMALL.

Protected Methods

protected RowPresenter.ViewHolder createRowViewHolder (ViewGroup parent)

Called to create a ViewHolder object for a Row. Subclasses will override this method to return a different concrete ViewHolder object.

Parameters
parent The parent View for the Row's view holder.
Returns
  • A ViewHolder for the Row's View.

protected int getLayoutResourceId ()

Get resource id to inflate the layout. The layout must match STATE_HALF

protected boolean isClippingChildren ()

Returns true if the Row view should clip it's children. The clipChildren flag is set on view in initializeRowViewHolder(ViewHolder). Note that Slide transition or explode transition need turn off clipChildren. Default value is false.

protected void onBindRowViewHolder (RowPresenter.ViewHolder holder, Object item)

Binds the given row object to the given ViewHolder.

protected void onLayoutLogo (FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState, boolean logoChanged)

Layout logo position based on current state. Subclass may override. The method is called when a logo is bound to view or state changes.

Parameters
viewHolder The row ViewHolder that contains the logo.
oldState The old state, can be same as current viewHolder.getState()
logoChanged Whether logo was changed.

protected void onLayoutOverviewFrame (FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState, boolean logoChanged)

Layout overview frame based on current state. Subclass may override. The method is called when a logo is bound to view or state changes.

Parameters
viewHolder The row ViewHolder that contains the logo.
oldState The old state, can be same as current viewHolder.getState()
logoChanged Whether logo was changed.

protected void onRowViewAttachedToWindow (RowPresenter.ViewHolder vh)

Invoked when the row view is attached to the window.

protected void onRowViewDetachedFromWindow (RowPresenter.ViewHolder vh)

Invoked when the row view is detached from the window.

protected void onSelectLevelChanged (RowPresenter.ViewHolder holder)

Callback when the select level changes. The default implementation applies the select level to setSelectLevel(RowHeaderPresenter.ViewHolder, float) when getSelectEffectEnabled() is true. Subclasses may override this function and implement a different select effect. In this case, the method isUsingDefaultSelectEffect() should also be overridden to disable the default dimming effect.

protected void onStateChanged (FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState)

Called when getState() changes. Subclass may override. The default implementation calls onLayoutLogo(ViewHolder, int, boolean) and onLayoutOverviewFrame(ViewHolder, int, boolean).

Parameters
viewHolder The ViewHolder which state changed.
oldState The old state.

protected void onUnbindRowViewHolder (RowPresenter.ViewHolder holder)

Unbinds the given ViewHolder.