# PresenterSwitcher

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

*** ** * ** ***


```
public abstract class PresenterSwitcher
```

<br />

Known direct subclasses [HorizontalHoverCardSwitcher](https://developer.android.com/reference/androidx/leanback/widget/HorizontalHoverCardSwitcher)

|---|---|
| `https://developer.android.com/reference/androidx/leanback/widget/HorizontalHoverCardSwitcher` | A helper class for showing a hover card view below a `https://developer.android.com/reference/androidx/leanback/widget/HorizontalGridView`. |

*** ** * ** ***

An abstract helper class that switches a view in its parent view using a `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector`. A subclass should implement `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#insertView(android.view.View)` to define how to add the view in parent, and may optionally override `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#onViewSelected(android.view.View)`.

## Summary

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

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#clear()()` Destroys created views. |
| `final https://developer.android.com/reference/android/view/ViewGroup.html` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#getParentViewGroup()()` Returns the parent. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#init(android.view.ViewGroup,androidx.leanback.widget.PresenterSelector)(https://developer.android.com/reference/android/view/ViewGroup.html parent, https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector presenterSelector)` Initializes the switcher with a parent view to insert view into and a `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector` for choosing a `https://developer.android.com/reference/androidx/leanback/widget/Presenter` for a given object. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#select(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html object)` Selects a view based on the given object and shows that view. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#unselect()()` Hides the view. |

| ### Protected methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#insertView(android.view.View)(https://developer.android.com/reference/android/view/View.html view)` |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#onViewSelected(android.view.View)(https://developer.android.com/reference/android/view/View.html view)` Called when a view is bound to the object of `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#select(java.lang.Object)`. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#showView(android.view.View,boolean)(https://developer.android.com/reference/android/view/View.html view, boolean visible)` |

## Public constructors

### PresenterSwitcher

Added in 1.1.0

```
public PresenterSwitcher()
```

## Public methods

### clear

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

```
public void clear()
```

Destroys created views.

### getParentViewGroup

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

```
public final ViewGroup getParentViewGroup()
```

Returns the parent.

### init

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

```
public void init(ViewGroup parent, PresenterSelector presenterSelector)
```

Initializes the switcher with a parent view to insert view into and a `https://developer.android.com/reference/androidx/leanback/widget/PresenterSelector` for choosing a `https://developer.android.com/reference/androidx/leanback/widget/Presenter` for a given object. This will destroy any existing views.

### select

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

```
public void select(Object object)
```

Selects a view based on the given object and shows that view.

### unselect

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

```
public void unselect()
```

Hides the view.

## Protected methods

### insertView

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

```
protected abstract void insertView(View view)
```

### onViewSelected

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

```
protected void onViewSelected(View view)
```

Called when a view is bound to the object of `https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher#select(java.lang.Object)`.

### showView

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

```
protected void showView(View view, boolean visible)
```