# DetailsOverviewLogoPresenter

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

*** ** * ** ***


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

*** ** * ** ***

Presenter that responsible to create a ImageView and bind to DetailsOverviewRow. The default implementation uses `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()` and binds to `https://developer.android.com/reference/android/widget/ImageView.html`.

Default implementation assumes no scaleType on ImageView and uses intrinsic width and height of `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()` to initialize ImageView's layout params. To specify a fixed size and/or specify a scapeType, subclass should change ImageView's layout params and scaleType in `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter#onCreateView(android.view.ViewGroup)`.

Subclass may override and has its own image view. Subclass may also download image from URL instead of using `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()`. It's subclass's responsibility to call `https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#notifyOnBindLogo(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder)` whenever `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter#isBoundToImage(androidx.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder,androidx.leanback.widget.DetailsOverviewRow)` turned to true so that activity transition can be started.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder : https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder` ViewHolder for Logo view of DetailsOverviewRow. |

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

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter#isBoundToImage(androidx.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder,androidx.leanback.widget.DetailsOverviewRow)( viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder, row: https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRow? )` Returns true if the logo view is bound to image. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter#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?)` Bind logo View to drawable of DetailsOverviewRow and call notifyOnBindLogo(). |
| `https://developer.android.com/reference/android/view/View.html` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter#onCreateView(android.view.ViewGroup)(parent: https://developer.android.com/reference/android/view/ViewGroup.html)` Create a View for the Logo, default implementation loads from . |
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder` | `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter#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/DetailsOverviewLogoPresenter#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/DetailsOverviewLogoPresenter#setContext(androidx.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder,androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter)( viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder, parentViewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder?, parentPresenter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter? )` Called from `https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter` to setup FullWidthDetailsOverviewRowPresenter and FullWidthDetailsOverviewRowPresenter.ViewHolder that hosts the logo. |

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

## Public constructors

### DetailsOverviewLogoPresenter

Added in 1.1.0

```
DetailsOverviewLogoPresenter()
```

## Public functions

### isBoundToImage

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

```
fun isBoundToImage(
    viewHolder: DetailsOverviewLogoPresenter.ViewHolder,
    row: DetailsOverviewRow?
): Boolean
```

Returns true if the logo view is bound to image. Subclass may override. The default implementation returns true when `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()` is not null. If subclass of DetailsOverviewLogoPresenter manages its own image drawable, it should override this function to report status correctly and invoke `https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#notifyOnBindLogo(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder)` when image view is bound to the drawable.

### onBindViewHolder

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

Bind logo View to drawable of DetailsOverviewRow and call notifyOnBindLogo(). The default implementation assumes the Logo View is an ImageView and change layout size to intrinsic size of ImageDrawable if `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder#isSizeFromDrawableIntrinsic()` is true.

| Parameters |
|---|---|
| `viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter.ViewHolder` | ViewHolder to bind. |
| `item: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?` | DetailsOverviewRow object to bind. |

### onCreateView

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

```
fun onCreateView(parent: ViewGroup): View
```

Create a View for the Logo, default implementation loads from . Subclass may override this method to use a fixed layout size and change ImageView scaleType. If the layout params is WRAP_CONTENT for both width and size, the ViewHolder would be using intrinsic size of Drawable in `https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)`.

| Parameters |
|---|---|
| `parent: https://developer.android.com/reference/android/view/ViewGroup.html` | Parent view. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html` | View created for the logo. |

### onCreateViewHolder

```
fun onCreateViewHolder(parent: ViewGroup): Presenter.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.

### setContext

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

```
fun setContext(
    viewHolder: DetailsOverviewLogoPresenter.ViewHolder,
    parentViewHolder: FullWidthDetailsOverviewRowPresenter.ViewHolder?,
    parentPresenter: FullWidthDetailsOverviewRowPresenter?
): Unit
```

Called from `https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter` to setup FullWidthDetailsOverviewRowPresenter and FullWidthDetailsOverviewRowPresenter.ViewHolder that hosts the logo.

| Parameters |
|---|---|
| `viewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder` |   |
| `parentViewHolder: https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder?` |   |
| `parentPresenter: https://developer.android.com/reference/kotlin/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter?` |   |