DetailsOverviewRowPresenter

Added in 1.1.0
Deprecated in 1.1.0

public class DetailsOverviewRowPresenter extends RowPresenter


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 DetailsOverviewRowPresenter is made in three parts: ImageView on the left, action list view on the bottom and a customizable detailed description view on the right.

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

To participate in activity transition, call setSharedElementEnterTransition during Activity's onCreate().

Because transition support and layout are fully controlled by DetailsOverviewRowPresenter, developer can not override DetailsOverviewRowPresenter.ViewHolder for adding/replacing views of DetailsOverviewRowPresenter. If further customization is required beyond replacing the detailed description, the application should create a new row presenter class.

Summary

Nested types

A ViewHolder for the DetailsOverviewRow.

Public constructors

Constructor for a DetailsOverviewRowPresenter.

Public methods

@ColorInt int

Returns the background color.

OnActionClickedListener

Returns the listener for Action click events.

boolean

Returns true if the layout style is large.

final boolean

Returns true if this RowPresenter is using the default dimming effect.

void

Sets the background color.

void

Sets the listener for Action click events.

final void
setSharedElementEnterTransition(
    Activity activity,
    String sharedElementName
)

Sets the enter transition of target activity to be transiting into overview row created by this presenter.

final void
setSharedElementEnterTransition(
    Activity activity,
    String sharedElementName,
    long timeoutMs
)

Sets the enter transition of target activity to be transiting into overview row created by this presenter.

void
setStyleLarge(boolean large)

Sets the layout style to be large or small.

Protected methods

RowPresenter.ViewHolder

Called to create a ViewHolder object for a Row.

void

Binds the given row object to the given ViewHolder.

void

Invoked when the row view is attached to the window.

void

Invoked when the row view is detached from the window.

void

Called when the given row view changes selection state.

void

Callback when the select level changes.

void

Unbinds the given ViewHolder.

Inherited Constants

From androidx.leanback.widget.RowPresenter
static final int

Don't synchronize row view activated status with selected status or expanded status, application will do its own through setActivated.

static final int

Synchronizes row view's activated status to expand status of the row view holder.

static final int

Sets the row view's activated status to true when both expand and selected are true.

static final int

Synchronizes row view's activated status to selected status of the row view holder.

Inherited methods

From androidx.leanback.widget.FacetProvider
abstract @Nullable Object
getFacet(@NonNull Class<Object> facetClass)

Queries optional implemented facet.

From androidx.leanback.widget.Presenter
static void

Utility method for removing all running animations on a view.

final Object
getFacet(Class<Object> facetClass)

Queries optional implemented facet.

abstract void
onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @Nullable Object item
)

Binds a View to an item.

void
onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @NonNull Object item,
    @NonNull List<Object> payloads
)

Binds a View to an item with a list of payloads.

abstract @NonNull Presenter.ViewHolder

Creates a new View.

abstract void

Unbinds a View from an item.

void

Called when a view created by this presenter has been attached to a window.

void

Called when a view created by this presenter has been detached from its window.

final void
setFacet(Class<Object> facetClass, Object facetImpl)

Sets dynamic implemented facet in addition to basic Presenter functions.

void

Called to set a click listener for the given view holder.

From androidx.leanback.widget.RowPresenter
void
dispatchItemSelectedListener(
    RowPresenter.ViewHolder vh,
    boolean selected
)

This method is only called from onRowViewSelected onRowViewSelected.

void
freeze(@NonNull RowPresenter.ViewHolder holder, boolean freeze)

Freezes/unfreezes the row, typically used when a transition starts/ends.

final RowHeaderPresenter

Returns the Presenter used for rendering the header, or null if none has been set.

final RowPresenter.ViewHolder

Returns the RowPresenter.ViewHolder from the given RowPresenter ViewHolder.

final boolean

Returns true if the row selection effect is enabled.

final float

Returns the current select level.

final int

Returns the policy of updating row view activated status.

void

Called after a RowPresenter.ViewHolder is created for a Row.

boolean

Returns true if the Row view should clip its children.

final void
onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @Nullable Object item
)

Binds a View to an item.

final Presenter.ViewHolder

Creates a new View.

void

Called when the row view's expanded state changes.

final void

Unbinds a View from an item.

final void

Called when a view created by this presenter has been attached to a window.

final void

Called when a view created by this presenter has been detached from its window.

void
setEntranceTransitionState(
    @NonNull RowPresenter.ViewHolder holder,
    boolean afterEntrance
)

Changes the visibility of views.

final void

Sets the Presenter used for rendering the header.

final void
setRowViewExpanded(Presenter.ViewHolder holder, boolean expanded)

Sets the expanded state of a Row view.

final void
setRowViewSelected(Presenter.ViewHolder holder, boolean selected)

Sets the selected state of a Row view.

final void
setSelectEffectEnabled(boolean applyDimOnSelect)

Enables or disables the row selection effect.

final void

Sets the current select level to a value between 0 (unselected) and 1 (selected).

final void
setSyncActivatePolicy(int syncActivatePolicy)

Sets the policy of updating row view activated status.

Public constructors

DetailsOverviewRowPresenter

Added in 1.1.0
Deprecated in 1.1.0
public DetailsOverviewRowPresenter(Presenter detailsPresenter)

Constructor for a DetailsOverviewRowPresenter.

Parameters
Presenter detailsPresenter

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

Public methods

getBackgroundColor

Added in 1.1.0
Deprecated in 1.1.0
public @ColorInt int getBackgroundColor()

Returns the background color. If no background color was set, transparent is returned.

getOnActionClickedListener

Added in 1.1.0
Deprecated in 1.1.0
public OnActionClickedListener getOnActionClickedListener()

Returns the listener for Action click events.

isStyleLarge

Added in 1.1.0
Deprecated in 1.1.0
public boolean isStyleLarge()

Returns true if the layout style is large.

isUsingDefaultSelectEffect

Added in 1.2.0-alpha04
Deprecated in 1.2.0-alpha04
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.

setBackgroundColor

Added in 1.1.0
Deprecated in 1.1.0
public void setBackgroundColor(@ColorInt int color)

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

setOnActionClickedListener

Added in 1.1.0
Deprecated in 1.1.0
public void setOnActionClickedListener(OnActionClickedListener listener)

Sets the listener for Action click events.

setSharedElementEnterTransition

Added in 1.1.0
Deprecated in 1.1.0
public final void setSharedElementEnterTransition(
    Activity activity,
    String sharedElementName
)

Sets the enter transition of target activity to be transiting into overview row created by this presenter. The transition will be cancelled if overview image is not loaded in a default timeout period.

It assumes shared element passed from calling activity is an ImageView; the shared element transits to overview image on the starting edge of the detail overview row, while bounds of overview row grows and reveals text and action buttons.

The method must be invoked in target Activity's onCreate().

setSharedElementEnterTransition

Added in 1.1.0
Deprecated in 1.1.0
public final void setSharedElementEnterTransition(
    Activity activity,
    String sharedElementName,
    long timeoutMs
)

Sets the enter transition of target activity to be transiting into overview row created by this presenter. The transition will be cancelled if the overview image is not loaded in the timeout period.

It assumes shared element passed from calling activity is an ImageView; the shared element transits to overview image on the starting edge of the detail overview row, while bounds of overview row grows and reveals text and action buttons.

The method must be invoked in target Activity's onCreate().

setStyleLarge

Added in 1.1.0
Deprecated in 1.1.0
public void setStyleLarge(boolean large)

Sets the layout style to be large or small. This affects the height of the overview, including the text description. The default is large.

Protected methods

createRowViewHolder

Added in 1.2.0-alpha04
Deprecated in 1.2.0-alpha04
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
ViewGroup parent

The parent View for the Row's view holder.

Returns
RowPresenter.ViewHolder

A ViewHolder for the Row's View.

onBindRowViewHolder

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

Binds the given row object to the given ViewHolder. Derived classes of RowPresenter overriding onBindRowViewHolder must call through the super class's implementation of this method.

onRowViewAttachedToWindow

protected void onRowViewAttachedToWindow(@NonNull RowPresenter.ViewHolder vh)

Invoked when the row view is attached to the window.

onRowViewDetachedFromWindow

protected void onRowViewDetachedFromWindow(@NonNull RowPresenter.ViewHolder vh)

Invoked when the row view is detached from the window.

onRowViewSelected

protected void onRowViewSelected(RowPresenter.ViewHolder vh, boolean selected)

Called when the given row view changes selection state. A subclass may override this to respond to selected state changes of a Row. A subclass may make visual changes to Row view but must not create animation on the Row view.

onSelectLevelChanged

protected void onSelectLevelChanged(RowPresenter.ViewHolder holder)

Callback when the select level changes. The default implementation applies the select level to setSelectLevel 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.

onUnbindRowViewHolder

protected void onUnbindRowViewHolder(@NonNull RowPresenter.ViewHolder holder)

Unbinds the given ViewHolder. Derived classes of RowPresenter overriding onUnbindRowViewHolder must call through the super class's implementation of this method.