Добавить FilterChips программно в Android - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь выбрать чип, который будет иметь несколько вариантов.В моем случае у меня будет выбор динамически, поэтому мне придется создавать чипы динамически.Я успешно смог создать его динамически.Но так как множественному выбору нужно свойство с именем 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: Пожалуйста, не делайте как дубликат.

1 Ответ

0 голосов
/ 29 марта 2019

Вы можете определить отдельный макет для 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" />
...