# AppCompatViewInflater

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

*** ** * ** ***


```
class AppCompatViewInflater
```

<br />

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

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/leanback/widget/LeanbackAppCompatViewInflater` | Inflater that converts leanback non-AppCpmpat views in layout to AppCompat versions. |

*** ** * ** ***

This class is used by AppCompat to automatically "substitute" all usages of core Android widgets inflated from layout files by the AppCompat extensions of those widgets.

This class two main responsibilities: the first is to 'inject' our tinted views in place of the framework versions in layout inflation; the second is backport the `android:theme` functionality for any inflated widgets. This include theme inheritance from its parent.

In order to provide your own extensions, follow these steps:

- Extend this class, or the relevant subclass if you're using the Material components library
- Override one or more of the `createXYZ` methods
- Add the `viewInflaterClass` attribute on your application theme. The value of the attribute should be the fully-qualified class name of your custom inflater class.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#AppCompatViewInflater()()` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/android/view/View.html?` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet,boolean,boolean,boolean,boolean)( parent: https://developer.android.com/reference/android/view/View.html?, name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, context: https://developer.android.com/reference/android/content/Context.html, attrs: https://developer.android.com/reference/android/util/AttributeSet.html, inheritContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, readAndroidTheme: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, readAppTheme: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, wrapContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Creates an AppCompat-compatible widget by automatically "substituting" all usages of core Android widgets with the AppCompat extensions of those widgets. |

| ### Protected functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatAutoCompleteTextView` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createAutoCompleteTextView(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatButton` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createButton(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatCheckBox` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createCheckBox(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatCheckedTextView` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createCheckedTextView(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatEditText` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createEditText(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatImageButton` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createImageButton(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatImageView` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createImageView(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatMultiAutoCompleteTextView` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createMultiAutoCompleteTextView(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatRadioButton` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createRadioButton(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatRatingBar` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createRatingBar(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatSeekBar` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createSeekBar(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatSpinner` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createSpinner(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatTextView` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createTextView(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/AppCompatToggleButton` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createToggleButton(android.content.Context,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |
| `https://developer.android.com/reference/android/view/View.html?` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatViewInflater#createView(android.content.Context,java.lang.String,android.util.AttributeSet)(context: https://developer.android.com/reference/android/content/Context.html!, name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, attrs: https://developer.android.com/reference/android/util/AttributeSet.html!)` |

## Public constructors

### AppCompatViewInflater

Added in 1.1.0

```
AppCompatViewInflater()
```

## Public functions

### createView

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

```
fun createView(
    parent: View?,
    name: String,
    context: Context,
    attrs: AttributeSet,
    inheritContext: Boolean,
    readAndroidTheme: Boolean,
    readAppTheme: Boolean,
    wrapContext: Boolean
): View?
```

Creates an AppCompat-compatible widget by automatically "substituting" all usages of core Android widgets with the AppCompat extensions of those widgets.

Most developers should not call this method directly. Instead, use the layout inflater provided by `https://developer.android.com/reference/android/app/Activity.html#getLayoutInflater()` or call `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatDelegate#createView(android.view.View,java.lang.String,android.content.Context,android.util.AttributeSet)`.

| Parameters |
|---|---|
| `parent: https://developer.android.com/reference/android/view/View.html?` | the hierarchical parent of the view, if any |
| `name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | class name of the view, must be a simple class name like `TextView` for core Android widgets |
| `context: https://developer.android.com/reference/android/content/Context.html` | context against which the view should be constructed, may be wrapped for theming purposes or fully replaced if `inheritContext` is `true` |
| `attrs: https://developer.android.com/reference/android/util/AttributeSet.html` | attribute set to pass to the view constructor |
| `inheritContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` to construct the view against the `parent` view's context instead of `context`, or `false` to use `context` |
| `readAndroidTheme: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` to parse `android:theme` from `attrs` and wrap the view's construction context if necessary |
| `readAppTheme: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` to parse `app:theme` from `attrs` and wrap the view's construction context if necessary |
| `wrapContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | this parameter is ignored |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/View.html?` | an AppCompat-compatible widget |

## Protected functions

### createAutoCompleteTextView

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

```
protected fun createAutoCompleteTextView(context: Context!, attrs: AttributeSet!): AppCompatAutoCompleteTextView
```

### createButton

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

```
protected fun createButton(context: Context!, attrs: AttributeSet!): AppCompatButton
```

### createCheckBox

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

```
protected fun createCheckBox(context: Context!, attrs: AttributeSet!): AppCompatCheckBox
```

### createCheckedTextView

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

```
protected fun createCheckedTextView(context: Context!, attrs: AttributeSet!): AppCompatCheckedTextView
```

### createEditText

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

```
protected fun createEditText(context: Context!, attrs: AttributeSet!): AppCompatEditText
```

### createImageButton

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

```
protected fun createImageButton(context: Context!, attrs: AttributeSet!): AppCompatImageButton
```

### createImageView

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

```
protected fun createImageView(context: Context!, attrs: AttributeSet!): AppCompatImageView
```

### createMultiAutoCompleteTextView

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

```
protected fun createMultiAutoCompleteTextView(context: Context!, attrs: AttributeSet!): AppCompatMultiAutoCompleteTextView
```

### createRadioButton

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

```
protected fun createRadioButton(context: Context!, attrs: AttributeSet!): AppCompatRadioButton
```

### createRatingBar

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

```
protected fun createRatingBar(context: Context!, attrs: AttributeSet!): AppCompatRatingBar
```

### createSeekBar

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

```
protected fun createSeekBar(context: Context!, attrs: AttributeSet!): AppCompatSeekBar
```

### createSpinner

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

```
protected fun createSpinner(context: Context!, attrs: AttributeSet!): AppCompatSpinner
```

### createTextView

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

```
protected fun createTextView(context: Context!, attrs: AttributeSet!): AppCompatTextView
```

### createToggleButton

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

```
protected fun createToggleButton(context: Context!, attrs: AttributeSet!): AppCompatToggleButton
```

### createView

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

```
protected fun createView(context: Context!, name: String!, attrs: AttributeSet!): View?
```