AppCompatViewInflater

class AppCompatViewInflater

Known direct subclasses
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

Public functions

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

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

Public constructors

AppCompatViewInflater

Added in 1.1.0
AppCompatViewInflater()

Public functions

createView

Added in 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 getLayoutInflater or call createView.

Parameters
parent: View?

the hierarchical parent of the view, if any

name: String

class name of the view, must be a simple class name like TextView for core Android widgets

context: Context

context against which the view should be constructed, may be wrapped for theming purposes or fully replaced if inheritContext is true

attrs: AttributeSet

attribute set to pass to the view constructor

inheritContext: Boolean

true to construct the view against the parent view's context instead of context, or false to use context

readAndroidTheme: Boolean

true to parse android:theme from attrs and wrap the view's construction context if necessary

readAppTheme: Boolean

true to parse app:theme from attrs and wrap the view's construction context if necessary

wrapContext: Boolean

true to wrap the view's construction context to provide additional resource system feature backports

Returns
View?

an AppCompat-compatible widget

Protected functions

createAutoCompleteTextView

Added in 1.1.0
protected fun createAutoCompleteTextView(context: Context!, attrs: AttributeSet!): AppCompatAutoCompleteTextView

createButton

Added in 1.1.0
protected fun createButton(context: Context!, attrs: AttributeSet!): AppCompatButton

createCheckBox

Added in 1.1.0
protected fun createCheckBox(context: Context!, attrs: AttributeSet!): AppCompatCheckBox

createCheckedTextView

Added in 1.1.0
protected fun createCheckedTextView(context: Context!, attrs: AttributeSet!): AppCompatCheckedTextView

createEditText

Added in 1.1.0
protected fun createEditText(context: Context!, attrs: AttributeSet!): AppCompatEditText

createImageButton

Added in 1.1.0
protected fun createImageButton(context: Context!, attrs: AttributeSet!): AppCompatImageButton

createImageView

Added in 1.1.0
protected fun createImageView(context: Context!, attrs: AttributeSet!): AppCompatImageView

createMultiAutoCompleteTextView

Added in 1.1.0
protected fun createMultiAutoCompleteTextView(context: Context!, attrs: AttributeSet!): AppCompatMultiAutoCompleteTextView

createRadioButton

Added in 1.1.0
protected fun createRadioButton(context: Context!, attrs: AttributeSet!): AppCompatRadioButton

createRatingBar

Added in 1.1.0
protected fun createRatingBar(context: Context!, attrs: AttributeSet!): AppCompatRatingBar

createSeekBar

Added in 1.1.0
protected fun createSeekBar(context: Context!, attrs: AttributeSet!): AppCompatSeekBar

createSpinner

Added in 1.1.0
protected fun createSpinner(context: Context!, attrs: AttributeSet!): AppCompatSpinner

createTextView

Added in 1.1.0
protected fun createTextView(context: Context!, attrs: AttributeSet!): AppCompatTextView

createToggleButton

Added in 1.1.0
protected fun createToggleButton(context: Context!, attrs: AttributeSet!): AppCompatToggleButton

createView

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