如何在 kotlin 中动态填充芯片组?

How to fill chip group dynamicallly in kotlin?

我有一个 class 项目,其中包含一个 String 关键字数组。我将尝试使用 Kotlin 和新芯片中的每个关键字在回收站视图中显示每个问题。该芯片将包含在芯片组中。 我的芯片组XML代码是

<com.google.android.material.chip.ChipGroup
            android:id="@+id/chpKeyword"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:singleSelection="true"
            android:textAppearance="@style/TextAppearance.MaterialComponents.Chip">

        </com.google.android.material.chip.ChipGroup>
  

我在 onViewCreated 函数中尝试填充芯片组是

 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

   val chip= Chip(chpKeyword.context)
    chip.text="hello"
    chip.isClickable = true
    chip.isCheckable = true
    chip.setTextAppearance(R.style.TextAppearance_MaterialComponents_Button)
    chpKeyword.addView(chip)
}

但问题是,当创建视图时,应用程序停止并抛出以下错误。

java.lang.IllegalArgumentException:此组件上的样式要求您的应用主题为Theme.MaterialComponents(或后代)。

我检查了 但它没有解决我的问题。

我想知道如何解决这个错误?

谢谢

此错误表示您的应用需要设置此主题Theme.MaterialComponents

请转到 res -> values -> styles 并将父项设置为 parent="Theme.MaterialComponents"

然后再次尝试 运行 您的应用。