# AbstractMediaItemPresenter.ViewHolder

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

*** ** * ** ***

<br />

```
class AbstractMediaItemPresenter.ViewHolder : RowPresenter.ViewHolder
```

<br />

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

*** ** * ** ***

The ViewHolder for the `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter`. It references different views that place different meta-data corresponding to a media item details, actions, selector, listeners, and presenters,

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#ViewHolder(android.view.View)(view: https://developer.android.com/reference/android/view/View.html!)` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/android/view/ViewGroup.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemActionsContainer()()` |
| `https://developer.android.com/reference/android/view/View.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemDetailsView()()` |
| `https://developer.android.com/reference/android/widget/TextView.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemDurationView()()` |
| `https://developer.android.com/reference/android/widget/TextView.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemNameView()()` Returns the view displayed when the media item is neither playing nor paused, corresponding to the playback state of PLAY_STATE_INITIAL. |
| `https://developer.android.com/reference/android/widget/TextView.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemNumberView()()` |
| `https://developer.android.com/reference/android/widget/ViewFlipper.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemNumberViewFlipper()()` |
| `https://developer.android.com/reference/android/view/View.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemPausedView()()` |
| `https://developer.android.com/reference/android/view/View.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemPlayingView()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/leanback/widget/MultiActionsProvider.MultiAction!>!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemRowActions()()` |
| `https://developer.android.com/reference/android/view/View.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getMediaItemRowSeparator()()` |
| `https://developer.android.com/reference/android/view/View.html!` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#getSelectorView()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#notifyActionChanged(androidx.leanback.widget.MultiActionsProvider.MultiAction)(action: https://developer.android.com/reference/kotlin/androidx/leanback/widget/MultiActionsProvider.MultiAction!)` Notifies an action has changed in this media row and the UI needs to be updated |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#notifyDetailsChanged()()` Notifies the content of the media item details in a row has changed and triggers updating the UI. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#notifyPlayStateChanged()()` Notifies the playback state of the media item row has changed. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#onBindRowActions()()` Binds the actions in a media item row object to their views. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder#setSelectedMediaItemNumberView(int)(position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Flips to the view at index 'position'. |

### 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.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder#getFacet(java.lang.Class<?>)(facetClass: https://developer.android.com/reference/java/lang/Class.html<*>!)`

Queries optional implemented facet.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder#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 ViewHolder functions.
From [androidx.leanback.widget.RowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder) `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowHeaderPresenter.ViewHolder!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getHeaderViewHolder()()`

Returns the view holder for the Row header for this Row.
`https://developer.android.com/reference/kotlin/androidx/leanback/widget/BaseOnItemViewClickedListener!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getOnItemViewClickedListener()()`

Returns the listener for item click event.
`https://developer.android.com/reference/kotlin/androidx/leanback/widget/BaseOnItemViewSelectedListener!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getOnItemViewSelectedListener()()`

Returns the listener for item or row selection.
`https://developer.android.com/reference/android/view/View.OnKeyListener.html!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getOnKeyListener()()`

Returns the key listener.
`https://developer.android.com/reference/kotlin/androidx/leanback/widget/Row!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getRow()()`

Returns the row bound to this ViewHolder.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getRowObject()()`

Returns the Row object bound to this ViewHolder.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getSelectLevel()()`

Returns the current selection level of the Row.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getSelectedItem()()`

Return currently selected item inside a row ViewHolder.
`https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder?` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#getSelectedItemViewHolder()()`

Return `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder` of currently selected item inside a row ViewHolder.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#isExpanded()()`

Returns whether the Row is in its expanded state.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#isSelected()()`

Returns whether the Row is selected.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)(activated: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`

Sets the row view's activated status.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#setOnItemViewClickedListener(androidx.leanback.widget.BaseOnItemViewClickedListener)(listener: https://developer.android.com/reference/kotlin/androidx/leanback/widget/BaseOnItemViewClickedListener!)`

Sets the listener for item click event.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#setOnItemViewSelectedListener(androidx.leanback.widget.BaseOnItemViewSelectedListener)(listener: https://developer.android.com/reference/kotlin/androidx/leanback/widget/BaseOnItemViewSelectedListener!)`

Sets the listener for item or row selection.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#setOnKeyListener(android.view.View.OnKeyListener)(keyListener: https://developer.android.com/reference/android/view/View.OnKeyListener.html!)`

Sets a key listener.
`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#syncActivatedStatus(android.view.View)(view: https://developer.android.com/reference/android/view/View.html!)`

Synchronizes the activated status of view to the last value passed through `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)`.

### Inherited properties

From [androidx.leanback.widget.Presenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder) `https://developer.android.com/reference/android/view/View.html!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder#view()` From [androidx.leanback.widget.RowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder) `https://developer.android.com/reference/kotlin/androidx/leanback/graphics/ColorOverlayDimmer!` `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder#mColorDimmer()`

## Public constructors

### ViewHolder

```
ViewHolder(view: View!)
```

## Public functions

### getMediaItemActionsContainer

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

```
fun getMediaItemActionsContainer(): ViewGroup!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/ViewGroup.html!` | The view containing the set of custom actions |

### getMediaItemDetailsView

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

```
fun getMediaItemDetailsView(): View!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html!` | The view container of media item details |

### getMediaItemDurationView

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

```
fun getMediaItemDurationView(): TextView!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/TextView.html!` | The TextView responsible for rendering the media item duration |

### getMediaItemNameView

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

```
fun getMediaItemNameView(): TextView!
```

Returns the view displayed when the media item is neither playing nor paused, corresponding to the playback state of PLAY_STATE_INITIAL.

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/TextView.html!` | The TextView responsible for rendering the media item name. |

### getMediaItemNumberView

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

```
fun getMediaItemNumberView(): TextView!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/TextView.html!` | The TextView responsible for rendering the media item number. This view is rendered when the media item row is neither playing nor paused. |

### getMediaItemNumberViewFlipper

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

```
fun getMediaItemNumberViewFlipper(): ViewFlipper!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/widget/ViewFlipper.html!` | The FlipperView responsible for flipping between different media item number views depending on the playback state |

### getMediaItemPausedView

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

```
fun getMediaItemPausedView(): View!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html!` | The view rendered when the media item row is paused. |

### getMediaItemPlayingView

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

```
fun getMediaItemPlayingView(): View!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html!` | The view rendered when the media item row is playing. |

### getMediaItemRowActions

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

```
fun getMediaItemRowActions(): Array<MultiActionsProvider.MultiAction!>!
```

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/leanback/widget/MultiActionsProvider.MultiAction!>!` | Array of MultiActions displayed for this media item row |

### getMediaItemRowSeparator

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

```
fun getMediaItemRowSeparator(): View!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html!` | The view responsible for rendering the separator line between media rows |

### getSelectorView

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

```
fun getSelectorView(): View!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html!` | The SelectorView responsible for highlighting the in-focus view within each media item row |

### notifyActionChanged

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

```
fun notifyActionChanged(action: MultiActionsProvider.MultiAction!): Unit
```

Notifies an action has changed in this media row and the UI needs to be updated

| Parameters |
|---|---|
| `action: https://developer.android.com/reference/kotlin/androidx/leanback/widget/MultiActionsProvider.MultiAction!` | The action whose state has changed |

### notifyDetailsChanged

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

```
fun notifyDetailsChanged(): Unit
```

Notifies the content of the media item details in a row has changed and triggers updating the UI. This causes `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter#onBindMediaDetails(androidx.leanback.widget.AbstractMediaItemPresenter.ViewHolder,java.lang.Object)` on the user's provided presenter to be called back, allowing them to update UI accordingly.

### notifyPlayStateChanged

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

```
fun notifyPlayStateChanged(): Unit
```

Notifies the playback state of the media item row has changed. This in turn triggers updating of the UI for that media item row if corresponding views are specified for each playback state. By default, 3 views are provided for each playback state, or these views can be provided by the user.

### onBindRowActions

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

```
fun onBindRowActions(): Unit
```

Binds the actions in a media item row object to their views. This consists of creating (or reusing the existing) action view holders, and populating them with the actions' icons.

### setSelectedMediaItemNumberView

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

```
fun setSelectedMediaItemNumberView(position: Int): Unit
```

Flips to the view at index 'position'. This position corresponds to the index of a particular view within the ViewFlipper layout specified for the MediaItemNumberView (see playbackMediaItemNumberViewFlipperLayout attribute).

| Parameters |
|---|---|
| `position: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the child view to display. |