В моем макете xml у меня есть группа чипов с фильтром чипов.
<android.support.design.chip.ChipGroup
android:id="@+id/chipGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.chip.Chip
style="@style/myStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
.....
</android.support.design.chip.ChipGroup>
Поскольку существует много фильтров, кажется разумным добавить их в код.Проблема в том, что мне нужно применить атрибут style
к каждому чипу.
Я пытался:
val chip = Chip(ContextThemeWrapper(context, R.style.myStyle))
binding.chipGroup.addView(chip)
без эффекта
val chip = Chip(context, null, R.style.myStyle)
binding.chipGroup.addView(chip)
без эффекта
Я создал layout/filter_chip.xml
и поместил туда шаблон чипа
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.chip.Chip
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/myStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
, и я создал его в коде, подобном этому
val chip = inflater.inflate(R.layout.filter_chip, binding.chipGroup, false) as Chip
binding.chipGroup.addView(chip)
Он работает и стиль применяется.Но я спрашиваю себя, действительно ли это самый простой способ добиться этого.Ты знаешь лучший?