Material Chip 输入小部件只能与 Theme.AppCompat 一起使用

Igo*_*yuk 3 android android-theme kotlin android-chips material-components-android

在我使用 AutoCompleteEditText 和 ChipGroup 创建布局后,我试图在我的 Android 应用程序中创建一个 ChipInput,我将动态创建的 Chip 添加到其中,但在堆栈跟踪中出现以下错误:

E/ThemeUtils:视图类 com.google.android.material.chip.Chip 是一个 AppCompat 小部件,只能与 Theme.AppCompat 主题(或后代)一起使用。

此组件上的样式要求您的应用程序主题为 Theme.MaterialComponents(或其后代)。

问题是我的主题尚未设置为材质,但我仍然收到该错误,我什至尝试以编程方式将主题设置为芯片,但仍然出现该错误。

这是我以编程方式添加芯片的代码

private fun addChipToGroup(person: String, chipGroup: ChipGroup) {
    val chip = Chip(applicationContext)
    chip.text = person
    chip.isCloseIconVisible = true

    // necessary to get single selection working
    chip.isClickable = true
    chip.isCheckable = false
    chipGroup.addView(chip as View)
    chip.setOnCloseIconClickListener { chipGroup.removeView(chip as View) }
}
Run Code Online (Sandbox Code Playgroud)

应用程序在该方法的第一行崩溃

Gab*_*tti 5

你的问题在这里:

val chip = Chip(applicationContext)
Run Code Online (Sandbox Code Playgroud)

应用程序上下文没有您的应用程序主题。
您必须使用主题上下文,例如Activity.

  • 用 this@ActivityName 更改了它,现在可以使用了 (2认同)