# PlaybackRowPresenter

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

*** ** * ** ***

<br />

```
abstract class PlaybackRowPresenter : RowPresenter
```

<br />

|---|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) ||||
| ↳ | [androidx.leanback.widget.Presenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter) |||
|   | ↳ | [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter) ||
|   |   | ↳ | [androidx.leanback.widget.PlaybackRowPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter) |

Known direct subclasses [PlaybackControlsRowPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRowPresenter), [PlaybackTransportRowPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackTransportRowPresenter)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRowPresenter` | A PlaybackControlsRowPresenter renders a `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow` to display a series of playback control buttons. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackTransportRowPresenter` | A PlaybackTransportRowPresenter renders a `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow` to display a series of playback control buttons. |

*** ** * ** ***

Subclass of `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter` that can define the desired behavior when the view reappears. This is presently used by `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRowPresenter` to update the UI after we show/hide the controls view.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter.ViewHolder : https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder` This container is used for trapping click events and passing them to the playback controls. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter#PlaybackRowPresenter()()` |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter#onReappear(androidx.leanback.widget.RowPresenter.ViewHolder)(rowViewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder)` Provides hook to update the UI when the view reappears. |

### Inherited Constants

From [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter) `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/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/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)`.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_EXPANDED() = 1`

Synchronizes row view's activated status to expand status of the row view holder.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/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.
`const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_TO_SELECTED() = 2`

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

### Inherited functions

From [androidx.leanback.widget.FacetProvider](https://developer.android.com/reference/kotlin/androidx/leanback/widget/FacetProvider) `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/FacetProvider#getFacet(java.lang.Class<?>)(facetClass: https://developer.android.com/reference/java/lang/Class.html<*>)`

Queries optional implemented facet.
From [androidx.leanback.widget.Presenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter) `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#cancelAnimationsRecursive(android.view.View)(view: https://developer.android.com/reference/android/view/View.html!)`

Utility method for removing all running animations on a view.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#getFacet(java.lang.Class<?>)(facetClass: https://developer.android.com/reference/java/lang/Class.html<*>!)`

Queries optional implemented facet.
`abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)(viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder, item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object,java.util.List<java.lang.Object>)(

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

item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html,

payloads: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!>

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item with a list of payloads.
`abstract https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#onCreateViewHolder(android.view.ViewGroup)(parent: https://developer.android.com/reference/android/view/ViewGroup.html)`

Creates a new `https://developer.android.com/reference/android/view/View.html`.
`abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder)`

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder)`

Called when a view created by this presenter has been attached to a window.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder)`

Called when a view created by this presenter has been detached from its window.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#setFacet(java.lang.Class<?>,java.lang.Object)(facetClass: https://developer.android.com/reference/java/lang/Class.html<*>!, facetImpl: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!)`

Sets dynamic implemented facet in addition to basic Presenter functions.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#setOnClickListener(androidx.leanback.widget.Presenter.ViewHolder,android.view.View.OnClickListener)(

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

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

)`

Called to set a click listener for the given view holder.
From [androidx.leanback.widget.RowPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter) `abstract https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#createRowViewHolder(android.view.ViewGroup)(parent: https://developer.android.com/reference/android/view/ViewGroup.html)`

Called to create a ViewHolder object for a Row.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#dispatchItemSelectedListener(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(

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

selected: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html

)`

This method is only called from `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onRowViewSelected(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)` onRowViewSelected.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#freeze(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder, freeze: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

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

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

Returns the `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder` from the given RowPresenter ViewHolder.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#getSelectEffectEnabled()()`

Returns true if the row selection effect is enabled.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#getSelectLevel(androidx.leanback.widget.Presenter.ViewHolder)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder!)`

Returns the current select level.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#getSyncActivatePolicy()()`

Returns the policy of updating row view activated status.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#initializeRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder!)`

Called after a `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder` is created for a Row.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#isClippingChildren()()`

Returns true if the Row view should clip its children.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#isUsingDefaultSelectEffect()()`

Returns true if this RowPresenter is using the default dimming effect.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onBindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder,java.lang.Object)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder, item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`

Binds the given row object to the given ViewHolder.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)(viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder, item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)`

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

Creates a new `https://developer.android.com/reference/android/view/View.html`.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onRowViewAttachedToWindow(androidx.leanback.widget.RowPresenter.ViewHolder)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder)`

Invoked when the row view is attached to the window.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onRowViewDetachedFromWindow(androidx.leanback.widget.RowPresenter.ViewHolder)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder)`

Invoked when the row view is detached from the window.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onRowViewExpanded(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder!, expanded: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Called when the row view's expanded state changes.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onRowViewSelected(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder, selected: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Called when the given row view changes selection state.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onSelectLevelChanged(androidx.leanback.widget.RowPresenter.ViewHolder)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder!)`

Callback when the select level changes.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onUnbindRowViewHolder(androidx.leanback.widget.RowPresenter.ViewHolder)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder)`

Unbinds the given ViewHolder.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder)`

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder)`

Called when a view created by this presenter has been attached to a window.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder)`

Called when a view created by this presenter has been detached from its window.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#setEntranceTransitionState(androidx.leanback.widget.RowPresenter.ViewHolder,boolean)(

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

afterEntrance: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html

)`

Changes the visibility of views.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#setHeaderPresenter(androidx.leanback.widget.RowHeaderPresenter)(headerPresenter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowHeaderPresenter!)`

Sets the Presenter used for rendering the header.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#setRowViewExpanded(androidx.leanback.widget.Presenter.ViewHolder,boolean)(holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder!, expanded: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Sets the expanded state of a Row view.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#setRowViewSelected(androidx.leanback.widget.Presenter.ViewHolder,boolean)(holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder!, selected: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Sets the selected state of a Row view.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#setSelectEffectEnabled(boolean)(applyDimOnSelect: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Enables or disables the row selection effect.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#setSelectLevel(androidx.leanback.widget.Presenter.ViewHolder,float)(vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder!, level: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`

Sets the current select level to a value between 0 (unselected) and 1 (selected).
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter#setSyncActivatePolicy(int)(syncActivatePolicy: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`

Sets the policy of updating row view activated status.

## Public constructors

### PlaybackRowPresenter

Added in 1.1.0

```
PlaybackRowPresenter()
```

## Public functions

### onReappear

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

```
fun onReappear(rowViewHolder: RowPresenter.ViewHolder): Unit
```

Provides hook to update the UI when the view reappears.