# FullWidthDetailsOverviewRowPresenter

Artifact: [androidx.leanback:leanback](https://developer.android.com/jetpack/androidx/releases/leanback) [View Source](https://cs.android.com/search?q=file:androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.java+class:androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

*** ** * ** ***

<br />

```
public class FullWidthDetailsOverviewRowPresenter extends RowPresenter
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [androidx.leanback.widget.Presenter](https://developer.android.com/reference/androidx/leanback/widget/Presenter) |||
|   | ↳ | [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter) ||
|   |   | ↳ | [androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter](https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter) |

*** ** * ** ***

Renders a `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRow` to display an overview of an item. Typically this row will be the first row in a fragment such as the `https://developer.android.com/reference/androidx/leanback/app/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 `https://developer.android.com/reference/androidx/leanback/widget/Presenter` passed in `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#FullWidthDetailsOverviewRowPresenter(androidx.leanback.widget.Presenter)`. Typically this will be an instance of `https://developer.android.com/reference/androidx/leanback/widget/AbstractDetailsDescriptionPresenter`. The application can access the detailed description ViewHolder from `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder#getDetailsDescriptionViewHolder()`.

The logo view is rendered using a customizable `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter` passed in `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#FullWidthDetailsOverviewRowPresenter(androidx.leanback.widget.Presenter,androidx.leanback.widget.DetailsOverviewLogoPresenter)`. The application can access the logo ViewHolder from `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder#getLogoViewHolder()`.

To support activity shared element transition, call `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setListener(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.Listener)` with `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewSharedElementHelper` during Activity's onCreate(). Application is free to create its own "shared element helper" class using the Listener for image binding. Call `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setParticipatingEntranceTransition(boolean)` with false

The view has three states: `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_HALF()``https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_FULL()` and `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_SMALL()`. See `https://developer.android.com/reference/androidx/leanback/app/DetailsFragment` where it switches states based on selected row position.

## Summary

| ### Nested types |
|---|
| `public abstract class https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.Listener` Listeners for events on ViewHolder. |
| `public inner class https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder extends https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` A ViewHolder for the DetailsOverviewRow. |
| `public inner class https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder.DetailsOverviewRowListener extends https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRow.Listener` |

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#ALIGN_MODE_MIDDLE() = 1` 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. |
| `static final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#ALIGN_MODE_START() = 0` This is the alignment mode that the logo and description align to the starting edge of the overview view. |
| `static final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_FULL() = 1` This is the state when the view covers full width and height of screen. |
| `static final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_HALF() = 0` This is the default state corresponding to layout file. |
| `static final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_SMALL() = 2` This is the state where the view shrinks to a small banner. |

| ### Protected fields |
|---|---|
| `int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#mInitialState()` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#FullWidthDetailsOverviewRowPresenter(androidx.leanback.widget.Presenter)(https://developer.android.com/reference/androidx/leanback/widget/Presenter detailsPresenter)` Constructor for a FullWidthDetailsOverviewRowPresenter. |
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#FullWidthDetailsOverviewRowPresenter(androidx.leanback.widget.Presenter,androidx.leanback.widget.DetailsOverviewLogoPresenter)( https://developer.android.com/reference/androidx/leanback/widget/Presenter detailsPresenter, https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter logoPresenter )` Constructor for a FullWidthDetailsOverviewRowPresenter. |

| ### Public methods |
|---|---|
| `final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#getActionsBackgroundColor()()` Returns the background color of actions. |
| `final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#getAlignmentMode()()` Returns alignment mode of Description. |
| `final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#getBackgroundColor()()` Returns the background color. |
| `final int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#getInitialState()()` Returns the initial state used to create ViewHolder. |
| `https://developer.android.com/reference/androidx/leanback/widget/OnActionClickedListener` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#getOnActionClickedListener()()` Returns the listener for Action click events. |
| `final boolean` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#isParticipatingEntranceTransition()()` Returns true if the overview should be part of shared element transition. |
| `final boolean` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#isUsingDefaultSelectEffect()()` Returns true if this RowPresenter is using the default dimming effect. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#notifyOnBindLogo(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder)( https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder )` Called by `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter` to notify logo was bound to view. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setActionsBackgroundColor(int)(int color)` Sets the background color for Action Bar. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setAlignmentMode(int)(int alignmentMode)` Set alignment mode of Description. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setBackgroundColor(int)(int color)` Sets the background color. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setEntranceTransitionState(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder, boolean afterEntrance )` Changes the visibility of views. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setInitialState(int)(int state)` Change the initial state used to create ViewHolder. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setListener(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.Listener)(https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.Listener listener)` Set listener for details overview presenter. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setOnActionClickedListener(androidx.leanback.widget.OnActionClickedListener)(https://developer.android.com/reference/androidx/leanback/widget/OnActionClickedListener listener)` Sets the listener for Action click events. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setParticipatingEntranceTransition(boolean)(boolean participating)` Sets if the overview should be part of shared element transition. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setState(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,int)( https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int state )` Switch state of a ViewHolder. |

| ### Protected methods |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#createRowViewHolder(android.view.ViewGroup)(https://developer.android.com/reference/android/view/ViewGroup.html parent)` Called to create a ViewHolder object for a Row. |
| `int` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#getLayoutResourceId()()` Get resource id to inflate the layout. |
| `boolean` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#isClippingChildren()()` Returns true if the Row view should clip its children. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onBindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder,java.lang.Object)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Object.html item )` Binds the given row object to the given ViewHolder. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onLayoutLogo(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,int,boolean)( https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState, boolean logoChanged )` Layout logo position based on current state. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onLayoutOverviewFrame(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,int,boolean)( https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState, boolean logoChanged )` Layout overview frame based on current state. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onRowViewAttachedToWindow(androidx.leanback.widget.RowPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)` Invoked when the row view is attached to the window. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onRowViewDetachedFromWindow(androidx.leanback.widget.RowPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)` Invoked when the row view is detached from the window. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onSelectLevelChanged(androidx.leanback.widget.RowPresenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder)` Callback when the select level changes. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onStateChanged(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,int)( https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int oldState )` Called when `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder#getState()` changes. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onUnbindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder)` Unbinds the given ViewHolder. |

### Inherited Constants

From [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter) `static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_CUSTOM() = 0`

Don't synchronize row view activated status with selected status or expanded status, application will do its own through `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)`.
`static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_EXPANDED() = 1`

Synchronizes row view's activated status to expand status of the row view holder.
`static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_EXPANDED_AND_SELECTED() = 3`

Sets the row view's activated status to true when both expand and selected are true.
`static final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_SELECTED() = 2`

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

### Inherited methods

From [androidx.leanback.widget.FacetProvider](https://developer.android.com/reference/androidx/leanback/widget/FacetProvider) `abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/FacetProvider#getFacet(java.lang.Class<?>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass)`

Queries optional implemented facet.
From [androidx.leanback.widget.Presenter](https://developer.android.com/reference/androidx/leanback/widget/Presenter) `static void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#cancelAnimationsRecursive(android.view.View)(https://developer.android.com/reference/android/view/View.html view)`

Utility method for removing all running animations on a view.
`final https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#getFacet(java.lang.Class<?>)(https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass)`

Queries optional implemented facet.
`abstract void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,

@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object,java.util.List<java.lang.Object>)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Object.html item,

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Object.html> payloads

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item with a list of payloads.
`abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onCreateViewHolder(android.view.ViewGroup)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/ViewGroup.html parent)`

Creates a new `https://developer.android.com/reference/android/view/View.html`.
`abstract void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder)`

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been attached to a window.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been detached from its window.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#setFacet(java.lang.Class<?>,java.lang.Object)(https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass, https://developer.android.com/reference/java/lang/Object.html facetImpl)`

Sets dynamic implemented facet in addition to basic Presenter functions.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#setOnClickListener(androidx.leanback.widget.Presenter.ViewHolder,android.view.View.OnClickListener)(

https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder,

https://developer.android.com/reference/android/view/View.OnClickListener.html listener

)`

Called to set a click listener for the given view holder.
From [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/androidx/leanback/widget/RowPresenter) `void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#dispatchItemSelectedListener(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(

https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh,

boolean selected

)`

This method is only called from `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewSelected(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)` onRowViewSelected.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#freeze(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder, boolean freeze)`

Freezes/unfreezes the row, typically used when a transition starts/ends.
`final https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getHeaderPresenter()()`

Returns the Presenter used for rendering the header, or null if none has been set.
`final https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getRowViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Returns the `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` from the given RowPresenter ViewHolder.
`final boolean` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSelectEffectEnabled()()`

Returns true if the row selection effect is enabled.
`final float` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSelectLevel(androidx.leanback.widget.Presenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder vh)`

Returns the current select level.
`final int` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSyncActivatePolicy()()`

Returns the policy of updating row view activated status.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#initializeRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)(https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh)`

Called after a `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` is created for a Row.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,

@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item.
`final https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onCreateViewHolder(android.view.ViewGroup)(https://developer.android.com/reference/android/view/ViewGroup.html parent)`

Creates a new `https://developer.android.com/reference/android/view/View.html`.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewExpanded(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh, boolean expanded)`

Called when the row view's expanded state changes.
`void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onRowViewSelected(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder vh, boolean selected)`

Called when the given row view changes selection state.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder)`

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been attached to a window.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been detached from its window.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setHeaderPresenter(androidx.leanback.widget.RowHeaderPresenter)(https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter headerPresenter)`

Sets the Presenter used for rendering the header.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setRowViewExpanded(androidx.leanback.widget.Presenter.ViewHolder,boolean)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder, boolean expanded)`

Sets the expanded state of a Row view.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setRowViewSelected(androidx.leanback.widget.Presenter.ViewHolder,boolean)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder, boolean selected)`

Sets the selected state of a Row view.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setSelectEffectEnabled(boolean)(boolean applyDimOnSelect)`

Enables or disables the row selection effect.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setSelectLevel(androidx.leanback.widget.Presenter.ViewHolder,float)(https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder vh, float level)`

Sets the current select level to a value between 0 (unselected) and 1 (selected).
`final void` `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#setSyncActivatePolicy(int)(int syncActivatePolicy)`

Sets the policy of updating row view activated status.

## Constants

### ALIGN_MODE_MIDDLE

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public static final int ALIGN_MODE_MIDDLE = 1
```

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.

### ALIGN_MODE_START

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public static final int ALIGN_MODE_START = 0
```

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

### STATE_FULL

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public static final int STATE_FULL = 1
```

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

### STATE_HALF

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public static final int STATE_HALF = 0
```

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

### STATE_SMALL

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public static final int STATE_SMALL = 2
```

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

## Protected fields

### mInitialState

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
protected int mInitialState
```

## Public constructors

### FullWidthDetailsOverviewRowPresenter

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public FullWidthDetailsOverviewRowPresenter(Presenter detailsPresenter)
```

Constructor for a FullWidthDetailsOverviewRowPresenter.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/Presenter detailsPresenter` | The `https://developer.android.com/reference/androidx/leanback/widget/Presenter` used to render the detailed description of the row. |

### FullWidthDetailsOverviewRowPresenter

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public FullWidthDetailsOverviewRowPresenter(
    Presenter detailsPresenter,
    DetailsOverviewLogoPresenter logoPresenter
)
```

Constructor for a FullWidthDetailsOverviewRowPresenter.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/Presenter detailsPresenter` | The `https://developer.android.com/reference/androidx/leanback/widget/Presenter` used to render the detailed description of the row. |
| `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter logoPresenter` | The `https://developer.android.com/reference/androidx/leanback/widget/Presenter` used to render the logo view. |

## Public methods

### getActionsBackgroundColor

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final int getActionsBackgroundColor()
```

Returns the background color of actions. If `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setActionsBackgroundColor(int)` is not called, transparent is returned.

### getAlignmentMode

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final int getAlignmentMode()
```

Returns alignment mode of Description.

| Returns |
|---|---|
| `int` | One of `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#ALIGN_MODE_MIDDLE()` or `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#ALIGN_MODE_START()`. |

### getBackgroundColor

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final int getBackgroundColor()
```

Returns the background color. If `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#setBackgroundColor(int)`, transparent is returned.

### getInitialState

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final int getInitialState()
```

Returns the initial state used to create ViewHolder.

### getOnActionClickedListener

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public OnActionClickedListener getOnActionClickedListener()
```

Returns the listener for Action click events.

### isParticipatingEntranceTransition

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final boolean isParticipatingEntranceTransition()
```

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

### isUsingDefaultSelectEffect

```
public final boolean isUsingDefaultSelectEffect()
```

Returns true if this RowPresenter is using the default dimming effect. A subclass may (most likely) return false and override `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onSelectLevelChanged(androidx.leanback.widget.RowPresenter.ViewHolder)`.

### notifyOnBindLogo

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final void notifyOnBindLogo(
    FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder
)
```

Called by `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter` to notify logo was bound to view. Application should not directly call this method.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder` | The row ViewHolder that has logo bound to view. |

### setActionsBackgroundColor

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final void setActionsBackgroundColor(int color)
```

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

### setAlignmentMode

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final void setAlignmentMode(int alignmentMode)
```

Set alignment mode of Description.

| Parameters |
|---|---|
| `int alignmentMode` | One of `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#ALIGN_MODE_MIDDLE()` or `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#ALIGN_MODE_START()` |

### setBackgroundColor

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final void setBackgroundColor(int color)
```

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

### setEntranceTransitionState

```
public void setEntranceTransitionState(
    @NonNull 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 be called directly by the application.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder holder` | The ViewHolder of the row. |
| `boolean afterEntrance` | true if children of row participating in entrance transition should be set to visible, false otherwise. |

### setInitialState

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final void setInitialState(int state)
```

Change the initial state used to create ViewHolder.

### setListener

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final void setListener(FullWidthDetailsOverviewRowPresenter.Listener listener)
```

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

### setOnActionClickedListener

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void setOnActionClickedListener(OnActionClickedListener listener)
```

Sets the listener for Action click events.

### setParticipatingEntranceTransition

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public final void setParticipatingEntranceTransition(boolean participating)
```

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

### setState

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

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

Switch state of a ViewHolder.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder` | The ViewHolder to change state. |
| `int state` | New state, can be `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_FULL()`, `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_HALF()` or `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_SMALL()`. |

## Protected methods

### createRowViewHolder

```
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 |
|---|---|
| `https://developer.android.com/reference/android/view/ViewGroup.html parent` | The parent View for the Row's view holder. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` | A ViewHolder for the Row's View. |

### getLayoutResourceId

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
protected int getLayoutResourceId()
```

Get resource id to inflate the layout. The layout must match `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#STATE_HALF()`

### isClippingChildren

```
protected boolean isClippingChildren()
```

Returns true if the Row view should clip its children. The clipChildren flag is set on view in `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#initializeRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)`. Note that Slide transition or explode transition need turn off clipChildren. Default value is false.

### onBindRowViewHolder

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

Binds the given row object to the given ViewHolder. Derived classes of `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter` overriding `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onBindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder,java.lang.Object)` must call through the super class's implementation of this method.

### onLayoutLogo

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
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 |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder` | The row ViewHolder that contains the logo. |
| `int oldState` | The old state, can be same as current viewHolder.getState() |
| `boolean logoChanged` | Whether logo was changed. |

### onLayoutOverviewFrame

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
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 |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder` | The row ViewHolder that contains the logo. |
| `int oldState` | The old state, can be same as current viewHolder.getState() |
| `boolean logoChanged` | Whether logo was changed. |

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

### onSelectLevelChanged

```
protected void onSelectLevelChanged(RowPresenter.ViewHolder holder)
```

Callback when the select level changes. The default implementation applies the select level to `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#setSelectLevel(androidx.leanback.widget.RowHeaderPresenter.ViewHolder,float)` when `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSelectEffectEnabled()` is true. Subclasses may override this function and implement a different select effect. In this case, the method `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#isUsingDefaultSelectEffect()` should also be overridden to disable the default dimming effect.

### onStateChanged

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

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

Called when `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder#getState()` changes. Subclass may override. The default implementation calls `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onLayoutLogo(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,int,boolean)` and `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#onLayoutOverviewFrame(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,int,boolean)`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder` | The ViewHolder which state changed. |
| `int oldState` | The old state. |

### onUnbindRowViewHolder

```
protected void onUnbindRowViewHolder(@NonNull RowPresenter.ViewHolder holder)
```

Unbinds the given ViewHolder. Derived classes of `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter` overriding `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#onUnbindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)` must call through the super class's implementation of this method.