Добавить FilterChips программно в Android
Я пытаюсь сделать выбор чипа, который будет иметь несколько вариантов. В моем случае у меня будет выбор динамически, поэтому мне придется создавать чипы динамически. Я успешно смог создать его динамически. Но так как множественный выбор требует свойства под названием style="@style/Widget.MaterialComponents.Chip.Filter"
Я могу передать это в XML, но не в коде Kotlin. Я пытался сделать так, но безуспешно:
val chip = Chip(chapManager.context, null, android.widget.Filter)
Это говорит: Classifier 'Filter' does not have a companion object, and thus must be initialized here
Все остальное работает нормально, просто я не могу передать стиль моей микросхеме. Я ищу везде, не могу найти решение.
PS: пожалуйста, не делайте как дубликат.
0 ответов
Вы можете определить отдельный макет для Chip
и установить все атрибуты, которые вы хотите в XML
, а затем надуйте макет.
val chip = layoutInflater.inflate(R.layout.chip_layout, view!!.parent.parent as ViewGroup, false) as Chip
chip_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.chip.Chip xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/Widget.MaterialComponents.Chip.Filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/chipTextAppearance"
android:textColor="@android:color/black" />