# AbstractDetailsDescriptionPresenter

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

*** ** * ** ***

<br />

```
abstract class AbstractDetailsDescriptionPresenter : Presenter
```

<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.AbstractDetailsDescriptionPresenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter) |

*** ** * ** ***

An abstract `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter` for rendering a detailed description of an item. Typically this Presenter will be used in a `https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter` or `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRowPresenter`.

Subclasses must override `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter#onBindDescription(androidx.leanback.widget.AbstractDetailsDescriptionPresenter.ViewHolder,java.lang.Object)` to implement the data binding for this Presenter.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.ViewHolder : https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder` The ViewHolder for the `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter`. |

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

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter#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/AbstractDetailsDescriptionPresenter.ViewHolder` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter#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/AbstractDetailsDescriptionPresenter#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/AbstractDetailsDescriptionPresenter#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/AbstractDetailsDescriptionPresenter#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. |

| ### Protected functions |
|---|---|
| `abstract https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter#onBindDescription(androidx.leanback.widget.AbstractDetailsDescriptionPresenter.ViewHolder,java.lang.Object)( vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.ViewHolder, item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html )` Binds the data from the item to the ViewHolder. |

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

## Public constructors

### AbstractDetailsDescriptionPresenter

Added in 1.1.0

```
AbstractDetailsDescriptionPresenter()
```

## Public functions

### onBindViewHolder

```
fun onBindViewHolder(viewHolder: Presenter.ViewHolder, item: Any?): Unit
```

Binds a `https://developer.android.com/reference/android/view/View.html` to an item.

### onCreateViewHolder

```
fun onCreateViewHolder(parent: ViewGroup): AbstractDetailsDescriptionPresenter.ViewHolder
```

Creates a new `https://developer.android.com/reference/android/view/View.html`.

### onUnbindViewHolder

```
fun onUnbindViewHolder(viewHolder: Presenter.ViewHolder): Unit
```

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item. Any expensive references may be released here, and any fields that are not bound for every item should be cleared here.

### onViewAttachedToWindow

```
fun onViewAttachedToWindow(holder: Presenter.ViewHolder): Unit
```

Called when a view created by this presenter has been attached to a window.

This can be used as a reasonable signal that the view is about to be seen by the user. If the adapter previously freed any resources in `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)` those resources should be restored here.

| Parameters |
|---|---|
| `holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder` | Holder of the view being attached |

### onViewDetachedFromWindow

```
fun onViewDetachedFromWindow(holder: Presenter.ViewHolder): Unit
```

Called when a view created by this presenter has been detached from its window.

Becoming detached from the window is not necessarily a permanent condition; the consumer of an presenter's views may choose to cache views offscreen while they are not visible, attaching and detaching them as appropriate.
Any view property animations should be cancelled here or the view may fail to be recycled.

| Parameters |
|---|---|
| `holder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder` | Holder of the view being detached |

## Protected functions

### onBindDescription

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

```
protected abstract fun onBindDescription(
    vh: AbstractDetailsDescriptionPresenter.ViewHolder,
    item: Any
): Unit
```

Binds the data from the item to the ViewHolder. The item is typically associated with a `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRow` or `https://developer.android.com/reference/kotlin/androidx/leanback/widget/PlaybackControlsRow`.

| Parameters |
|---|---|
| `vh: https://developer.android.com/reference/kotlin/androidx/leanback/widget/AbstractDetailsDescriptionPresenter.ViewHolder` | The ViewHolder for this details description view. |
| `item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | The item being presented. |