# PresenterSwitcher

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/leanback/widget/PresenterSwitcher "View this page in Java")

<br />

```
abstract class PresenterSwitcher
```

<br />

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

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

*** ** * ** ***

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

## Summary

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

|                                ### Public functions                                 |
|-------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [clear](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#clear())`()` Destroys created views.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [ViewGroup](https://developer.android.com/reference/android/view/ViewGroup.html)`!` | [getParentViewGroup](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#getParentViewGroup())`()` Returns the parent.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [init](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#init(android.view.ViewGroup,androidx.leanback.widget.PresenterSelector))`(parent: `[ViewGroup](https://developer.android.com/reference/android/view/ViewGroup.html)`!, presenterSelector: `[PresenterSelector](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector)`!)` Initializes the switcher with a parent view to insert view into and a[PresenterSelector](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector)for choosing a[Presenter](https://developer.android.com/reference/kotlin/androidx/leanback/widget/Presenter)for a given object. |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [select](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#select(java.lang.Object))`(object: `[Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)`!)` Selects a view based on the given object and shows that view.                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [unselect](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#unselect())`()` Hides the view.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

|                                 ### Protected functions                                  |
|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [insertView](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#insertView(android.view.View))`(view: `[View](https://developer.android.com/reference/android/view/View.html)`!)`                                                                                                                                                                                   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)            | [onViewSelected](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#onViewSelected(android.view.View))`(view: `[View](https://developer.android.com/reference/android/view/View.html)`!)` Called when a view is bound to the object of[select](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#select(java.lang.Object)). |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)            | [showView](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSwitcher#showView(android.view.View,boolean))`(view: `[View](https://developer.android.com/reference/android/view/View.html)`!, visible: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)`                                                                               |

## Public constructors

### PresenterSwitcher

Added in 1.1.0  

```
PresenterSwitcher()
```  

## Public functions

### clear

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

```
fun clear(): Unit
```

Destroys created views.  

### getParentViewGroup

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

```
fun getParentViewGroup(): ViewGroup!
```

Returns the parent.  

### init

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

```
fun init(parent: ViewGroup!, presenterSelector: PresenterSelector!): Unit
```

Initializes the switcher with a parent view to insert view into and a[PresenterSelector](https://developer.android.com/reference/kotlin/androidx/leanback/widget/PresenterSelector)for choosing a[Presenter](https://developer.android.com/reference/kotlin/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)  

```
fun select(object: Any!): Unit
```

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)  

```
fun unselect(): Unit
```

Hides the view.  

## Protected functions

### insertView

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

```
protected abstract fun insertView(view: View!): Unit
```  

### onViewSelected

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

```
protected fun onViewSelected(view: View!): Unit
```

Called when a view is bound to the object of[select](https://developer.android.com/reference/kotlin/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 fun showView(view: View!, visible: Boolean): Unit
```