# RowPresenter.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/RowPresenter.java+class:androidx.leanback.widget.RowPresenter.ViewHolder) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

*** ** * ** ***


```
public class RowPresenter.ViewHolder extends Presenter.ViewHolder
```

<br />

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

Known direct subclasses [AbstractMediaItemPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder), [AbstractMediaListHeaderPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder), [DetailsOverviewRowPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRowPresenter.ViewHolder), [FullWidthDetailsOverviewRowPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder), [ListRowPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/ListRowPresenter.ViewHolder), [PlaybackRowPresenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/PlaybackRowPresenter.ViewHolder)

|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder` | The ViewHolder for the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaItemPresenter`. |
| `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder` | The ViewHolder for the `https://developer.android.com/reference/androidx/leanback/widget/AbstractMediaListHeaderPresenter`. |
| `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRowPresenter.ViewHolder` | **This class is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder` | A ViewHolder for the DetailsOverviewRow. |
| `https://developer.android.com/reference/androidx/leanback/widget/ListRowPresenter.ViewHolder` | ViewHolder for the ListRowPresenter. |
| `https://developer.android.com/reference/androidx/leanback/widget/PlaybackRowPresenter.ViewHolder` | This container is used for trapping click events and passing them to the playback controls. |

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

|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/PlaybackControlsRowPresenter.ViewHolder` | A ViewHolder for the PlaybackControlsRow. |
| `https://developer.android.com/reference/androidx/leanback/widget/PlaybackTransportRowPresenter.ViewHolder` | A ViewHolder for the PlaybackControlsRow supporting seek UI. |

*** ** * ** ***

A ViewHolder for a `https://developer.android.com/reference/androidx/leanback/widget/Row`.

## Summary

| ### Protected fields |
|---|---|
| `final https://developer.android.com/reference/androidx/leanback/graphics/ColorOverlayDimmer` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#mColorDimmer()` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#ViewHolder(android.view.View)(https://developer.android.com/reference/android/view/View.html view)` Constructor for ViewHolder. |

| ### Public methods |
|---|---|
| `final https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter.ViewHolder` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getHeaderViewHolder()()` Returns the view holder for the Row header for this Row. |
| `final https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewClickedListener` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getOnItemViewClickedListener()()` Returns the listener for item click event. |
| `final https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewSelectedListener` | `https://developer.android.com/reference/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/androidx/leanback/widget/RowPresenter.ViewHolder#getOnKeyListener()()` Returns the key listener. |
| `final https://developer.android.com/reference/androidx/leanback/widget/Row` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getRow()()` Returns the row bound to this ViewHolder. |
| `final https://developer.android.com/reference/java/lang/Object.html` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getRowObject()()` Returns the Row object bound to this ViewHolder. |
| `final float` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getSelectLevel()()` Returns the current selection level of the Row. |
| `@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/RowPresenter.ViewHolder#getSelectedItem()()` Return currently selected item inside a row ViewHolder. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#getSelectedItemViewHolder()()` Return `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` of currently selected item inside a row ViewHolder. |
| `final boolean` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#isExpanded()()` Returns whether the Row is in its expanded state. |
| `final boolean` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#isSelected()()` Returns whether the Row is selected. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)(boolean activated)` Sets the row view's activated status. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setOnItemViewClickedListener(androidx.leanback.widget.BaseOnItemViewClickedListener)(https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewClickedListener listener)` Sets the listener for item click event. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setOnItemViewSelectedListener(androidx.leanback.widget.BaseOnItemViewSelectedListener)(https://developer.android.com/reference/androidx/leanback/widget/BaseOnItemViewSelectedListener listener)` Sets the listener for item or row selection. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setOnKeyListener(android.view.View.OnKeyListener)(https://developer.android.com/reference/android/view/View.OnKeyListener.html keyListener)` Sets a key listener. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#syncActivatedStatus(android.view.View)(https://developer.android.com/reference/android/view/View.html view)` Synchronizes the activated status of view to the last value passed through `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)`. |

### Inherited fields

From [androidx.leanback.widget.Presenter.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder) `final https://developer.android.com/reference/android/view/View.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder#view()`

### 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.ViewHolder](https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder) `final https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder#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.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder#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 ViewHolder functions.

## Protected fields

### mColorDimmer

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

```
protected final ColorOverlayDimmer mColorDimmer
```

## Public constructors

### ViewHolder

```
public ViewHolder(View view)
```

Constructor for ViewHolder.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/view/View.html view` | The View bound to the Row. |

## Public methods

### getHeaderViewHolder

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

```
public final RowHeaderPresenter.ViewHolder getHeaderViewHolder()
```

Returns the view holder for the Row header for this Row.

### getOnItemViewClickedListener

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

```
public final BaseOnItemViewClickedListener getOnItemViewClickedListener()
```

Returns the listener for item click event.

### getOnItemViewSelectedListener

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

```
public final BaseOnItemViewSelectedListener getOnItemViewSelectedListener()
```

Returns the listener for item or row selection.

### getOnKeyListener

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

```
public View.OnKeyListener getOnKeyListener()
```

Returns the key listener.

### getRow

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

```
public final Row getRow()
```

Returns the row bound to this ViewHolder. Returns null if the row is not an instance of `https://developer.android.com/reference/androidx/leanback/widget/Row`.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/Row` | The row bound to this ViewHolder. Returns null if the row is not an instance of `https://developer.android.com/reference/androidx/leanback/widget/Row`. |

### getRowObject

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

```
public final Object getRowObject()
```

Returns the Row object bound to this ViewHolder.

| Returns |
|---|---|
| `https://developer.android.com/reference/java/lang/Object.html` | The row object bound to this ViewHolder. |

### getSelectLevel

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

```
public final float getSelectLevel()
```

Returns the current selection level of the Row.

### getSelectedItem

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

```
public @Nullable Object getSelectedItem()
```

Return currently selected item inside a row ViewHolder.

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html` | The selected item. |

### getSelectedItemViewHolder

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

```
public @Nullable Presenter.ViewHolder getSelectedItemViewHolder()
```

Return `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder` of currently selected item inside a row ViewHolder.

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` | The selected item's ViewHolder. |

### isExpanded

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

```
public final boolean isExpanded()
```

Returns whether the Row is in its expanded state.

| Returns |
|---|---|
| `boolean` | true if the Row is expanded, false otherwise. |

### isSelected

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

```
public final boolean isSelected()
```

Returns whether the Row is selected.

| Returns |
|---|---|
| `boolean` | true if the Row is selected, false otherwise. |

### setActivated

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

```
public final void setActivated(boolean activated)
```

Sets the row view's activated status. The status will be applied to children through `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#syncActivatedStatus(android.view.View)`. Application should only call this function when `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#getSyncActivatePolicy()` is `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter#SYNC_ACTIVATED_CUSTOM()`; otherwise the value will be overwritten when expanded or selected status changes.

### setOnItemViewClickedListener

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

```
public final void setOnItemViewClickedListener(BaseOnItemViewClickedListener listener)
```

Sets the listener for item click event. RowPresenter does nothing but subclass of RowPresenter may fire item click event if it has the concept of item. OnItemViewClickedListener will override `https://developer.android.com/reference/android/view/View.OnClickListener.html` that item presenter sets during `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onCreateViewHolder(android.view.ViewGroup)`.

### setOnItemViewSelectedListener

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

```
public final void setOnItemViewSelectedListener(BaseOnItemViewSelectedListener listener)
```

Sets the listener for item or row selection. RowPresenter fires row selection event with null item. A subclass of RowPresenter e.g. `https://developer.android.com/reference/androidx/leanback/widget/ListRowPresenter` may fire a selection event with selected item.

### setOnKeyListener

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

```
public void setOnKeyListener(View.OnKeyListener keyListener)
```

Sets a key listener.

### syncActivatedStatus

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

```
public final void syncActivatedStatus(View view)
```

Synchronizes the activated status of view to the last value passed through `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)`. No operation if `https://developer.android.com/reference/androidx/leanback/widget/RowPresenter.ViewHolder#setActivated(boolean)` is never called. Normally application does not need to call this method, `https://developer.android.com/reference/androidx/leanback/widget/ListRowPresenter` automatically calls this method when a child is attached to list row. However if application writes its own custom RowPresenter, it should call this method when attaches a child to the row view.