# RowHeaderPresenter

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

*** ** * ** ***

<br />

```
public class RowHeaderPresenter extends Presenter
```

<br />

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

*** ** * ** ***

RowHeaderPresenter provides a default presentation for `https://developer.android.com/reference/androidx/leanback/widget/HeaderItem` using a `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderView` and optionally a TextView for description. If a subclass creates its own view, the subclass must also override `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#onCreateViewHolder(android.view.ViewGroup)`, `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#onSelectLevelChanged(androidx.leanback.widget.RowHeaderPresenter.ViewHolder)`.

## Summary

| ### Nested types |
|---|
| `public class https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter.ViewHolder extends https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` A ViewHolder for the RowHeaderPresenter. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#RowHeaderPresenter()()` Creates default RowHeaderPresenter using a title view and a description view. |

| ### Public methods |
|---|---|
| `int` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#getSpaceUnderBaseline(androidx.leanback.widget.RowHeaderPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter.ViewHolder holder)` Returns the space (distance in pixels) below the baseline of the text view, if one exists; otherwise, returns 0. |
| `boolean` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#isNullItemVisibilityGone()()` Returns true if the view visibility is set to `https://developer.android.com/reference/android/view/View.html#GONE` when bound to null. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item )` Binds a `https://developer.android.com/reference/android/view/View.html` to an item. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#onCreateViewHolder(android.view.ViewGroup)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/ViewGroup.html parent)` Creates a new `https://developer.android.com/reference/android/view/View.html`. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder)` Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#setNullItemVisibilityGone(boolean)(boolean nullItemVisibilityGone)` Optionally sets the view visibility to `https://developer.android.com/reference/android/view/View.html#GONE` when bound to null. |
| `final void` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#setSelectLevel(androidx.leanback.widget.RowHeaderPresenter.ViewHolder,float)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter.ViewHolder holder, float selectLevel )` Sets the select level. |

| ### Protected methods |
|---|---|
| `static float` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#getFontDescent(android.widget.TextView,android.graphics.Paint)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/widget/TextView.html textView, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/graphics/Paint.html fontMeasurePaint)` |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter#onSelectLevelChanged(androidx.leanback.widget.RowHeaderPresenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter.ViewHolder holder)` Called when the select level changes. |

### 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](https://developer.android.com/reference/androidx/leanback/widget/Presenter) `static void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#cancelAnimationsRecursive(android.view.View)(https://developer.android.com/reference/android/view/View.html view)`

Utility method for removing all running animations on a view.
`final https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#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.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object,java.util.List<java.lang.Object>)(

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Object.html item,

@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Object.html> payloads

)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item with a list of payloads.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been attached to a window.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been detached from its window.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#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 Presenter functions.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#setOnClickListener(androidx.leanback.widget.Presenter.ViewHolder,android.view.View.OnClickListener)(

https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder,

https://developer.android.com/reference/android/view/View.OnClickListener.html listener

)`

Called to set a click listener for the given view holder.

## Public constructors

### RowHeaderPresenter

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

```
public RowHeaderPresenter()
```

Creates default RowHeaderPresenter using a title view and a description view.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/RowHeaderPresenter.ViewHolder#ViewHolder(android.view.View)` |   |

## Public methods

### getSpaceUnderBaseline

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

```
public int getSpaceUnderBaseline(@NonNull RowHeaderPresenter.ViewHolder holder)
```

Returns the space (distance in pixels) below the baseline of the text view, if one exists; otherwise, returns 0.

### isNullItemVisibilityGone

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

```
public boolean isNullItemVisibilityGone()
```

Returns true if the view visibility is set to `https://developer.android.com/reference/android/view/View.html#GONE` when bound to null.

### onBindViewHolder

```
public void onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @Nullable Object item
)
```

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

### onCreateViewHolder

```
public @NonNull Presenter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent)
```

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

### onUnbindViewHolder

```
public void onUnbindViewHolder(@NonNull Presenter.ViewHolder viewHolder)
```

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.

### setNullItemVisibilityGone

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

```
public void setNullItemVisibilityGone(boolean nullItemVisibilityGone)
```

Optionally sets the view visibility to `https://developer.android.com/reference/android/view/View.html#GONE` when bound to null.

### setSelectLevel

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

```
public final void setSelectLevel(
    @NonNull RowHeaderPresenter.ViewHolder holder,
    float selectLevel
)
```

Sets the select level.

## Protected methods

### getFontDescent

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

```
protected static float getFontDescent(@NonNull TextView textView, @NonNull Paint fontMeasurePaint)
```

### onSelectLevelChanged

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

```
protected void onSelectLevelChanged(@NonNull RowHeaderPresenter.ViewHolder holder)
```

Called when the select level changes. The default implementation sets the alpha on the view.