Добавить 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" />
Другие вопросы по тегам