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

*** ** * ** ***


```
class Presenter.ViewHolder : FacetProvider
```

<br />

Known direct subclasses [AbstractDetailsDescriptionPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.ViewHolder), [DetailsOverviewLogoPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder), [RowHeaderPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowHeaderPresenter.ViewHolder), [RowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder), [VerticalGridPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/VerticalGridPresenter.ViewHolder)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.ViewHolder` | The ViewHolder for the `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder` | ViewHolder for Logo view of DetailsOverviewRow. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowHeaderPresenter.ViewHolder` | A ViewHolder for the RowHeaderPresenter. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/RowPresenter.ViewHolder` | A ViewHolder for a `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Row`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/VerticalGridPresenter.ViewHolder` | ViewHolder for the VerticalGridPresenter. |

Known indirect subclasses [AbstractMediaItemPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaItemPresenter.ViewHolder), [AbstractMediaListHeaderPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder), [DetailsOverviewRowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRowPresenter.ViewHolder), [FullWidthDetailsOverviewRowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder), [ListRowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/ListRowPresenter.ViewHolder), [PlaybackControlsRowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRowPresenter.ViewHolder), [PlaybackRowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter.ViewHolder), [PlaybackTransportRowPresenter.ViewHolder](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackTransportRowPresenter.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`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaListHeaderPresenter.ViewHolder` | The ViewHolder for the `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractMediaListHeaderPresenter`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRowPresenter.ViewHolder` | **This class is deprecated.** Deprecated in Java |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder` | A ViewHolder for the DetailsOverviewRow. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ListRowPresenter.ViewHolder` | ViewHolder for the ListRowPresenter. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRowPresenter.ViewHolder` | A ViewHolder for the PlaybackControlsRow. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackRowPresenter.ViewHolder` | This container is used for trapping click events and passing them to the playback controls. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackTransportRowPresenter.ViewHolder` | A ViewHolder for the PlaybackControlsRow supporting seek UI. |

*** ** * ** ***

ViewHolder can be subclassed and used to cache any view accessors needed to improve binding performance (for example, results of findViewById) without needing to subclass a View.

## Summary

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

| ### Public functions |
|---|---|
| `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. |

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

## Public constructors

### ViewHolder

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

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

## Public functions

### getFacet

```
fun getFacet(facetClass: Class<*>!): Any!
```

Queries optional implemented facet.

| Parameters |
|---|---|
| `facetClass: https://developer.android.com/reference/java/lang/Class.html<*>!` | Facet classes to query, examples are: class of `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ItemAlignmentFacet`. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` | Facet implementation for the facetClass or null if feature not implemented. |

### setFacet

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

```
fun setFacet(facetClass: Class<*>!, facetImpl: Any!): Unit
```

Sets dynamic implemented facet in addition to basic ViewHolder functions.

| Parameters |
|---|---|
| `facetClass: https://developer.android.com/reference/java/lang/Class.html<*>!` | Facet classes to query, can be class of `https://developer.android.com/reference/kotlin/androidx/leanback/widget/ItemAlignmentFacet`. |
| `facetImpl: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!` | Facet implementation. |

## Public properties

### view

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

```
val view: View!
```