Android материал чип компонента приложения сбой. Невозможно надуть xml
Попробовал компонент Chip из обеих библиотек поддержкиcom.google.android.support:design:28.0.0-rc01
и материалcom.google.android.material:material:1.0.0-rc01
Трассировки стека
android.view.InflateException: Binary XML file line #72: Binary XML file line #72: Error inflating class com.google.android.material.chip.Chip at android.view.LayoutInflater.inflate(LayoutInflater.java:551) at android.view.LayoutInflater.inflate(LayoutInflater.java:429)`
раскладка
<com.google.android.material.chip.Chip
android:id="@+id/chip"
style="style/Widget.MaterialComponents.Chip.Entry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account"
app:closeIconEnabled="true" />`
6 ответов
Наконец-то есть решение о том, как динамически генерировать чипы с использованием новых материалов.
Google не предоставил никакой документации для макета chipsInput или того, как создать адрес электронной почты, подобный макету. Использование ChipDrawable не даст операции удаления на чипе, так как не может вызвать setOnCloseIconClickListener. Я был в состоянии сделать с помощью HorizontalScrollView, ChipGroup и EditText
Вот мой пример кода:
Обновите тему своего приложения, чтобы унаследовать одну из следующих тем:
Theme.MaterialComponents
Theme.MaterialComponents.NoActionBar
Theme.MaterialComponents.Light
Theme.MaterialComponents.Light.NoActionBar
Theme.MaterialComponents.Light.DarkActionBar
Например:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
Примечание. Использование темы "Компоненты материала" позволяет настраивать вид
Источник: https://www.material.io/develop/android/docs/getting-started/
Вы можете добавить атрибут стиля @style/Theme.MaterialComponents.Light в макет xml следующим образом:
<com.google.android.material.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="chip"
android:theme="@style/Theme.MaterialComponents.Light"/>
Добавьте следующие новые атрибуты темы в существующую тему приложения:
<style name="Theme.MyApp" parent="Theme.AppCompat">
<!-- Original AppCompat attributes. -->
<item name="colorPrimary">@color/my_app_primary_color</item>
<item name="colorPrimaryDark">@color/my_app_primary_dark_color</item>
<item name="colorAccent">@color/my_app_accent_color</item>
<!-- New MaterialComponents attributes. -->
<item name="colorSecondary">?attr/colorPrimary</item>
<item name="scrimBackground">@color/mtrl_scrim_color</item>
<item name="textAppearanceHeadline1">@style/TextAppearance.MaterialComponents.Headline1</item>
<item name="textAppearanceHeadline2">@style/TextAppearance.MaterialComponents.Headline2</item>
<item name="textAppearanceHeadline3">@style/TextAppearance.MaterialComponents.Headline3</item>
<item name="textAppearanceHeadline4">@style/TextAppearance.MaterialComponents.Headline4</item>
<item name="textAppearanceHeadline5">@style/TextAppearance.MaterialComponents.Headline5</item>
<item name="textAppearanceHeadline6">@style/TextAppearance.MaterialComponents.Headline6</item>
<item name="textAppearanceSubtitle1">@style/TextAppearance.MaterialComponents.Subtitle1</item>
<item name="textAppearanceSubtitle2">@style/TextAppearance.MaterialComponents.Subtitle2</item>
<item name="textAppearanceBody1">@style/TextAppearance.MaterialComponents.Body1</item>
<item name="textAppearanceBody2">@style/TextAppearance.MaterialComponents.Body2</item>
<item name="textAppearanceCaption">@style/TextAppearance.MaterialComponents.Caption</item>
<item name="textAppearanceButton">@style/TextAppearance.MaterialComponents.Button</item>
<item name="textAppearanceOverline">@style/TextAppearance.MaterialComponents.Overline</item>
</style>
Источник: https://material.io/develop/android/docs/getting-started/
Спасибо @Paranoid42
Вы можете использовать
Theme.MaterialComponents.**.Bridge
чтобы заменить вашу предыдущую тему.
Например, если старая тема
Theme.AppCompat.DayNight.NoActionBar
, новая тема будет
Theme.MaterialComponents.DayNight.NoActionBar.Bridge
.
См. https://material.io/develop/android/docs/getting-started#bridge-themes .
Добавлять chip
component which is included in the android support library.
реализация 'com.android.support:design:28.0.0-rc01'
<android.support.design.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
For More Reference
отредактированный
Add this to your gradle file
implementation group: 'com.google.android.material', name: 'material', version: '1.0.0-alpha1'
XML
<com.google.android.material.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:chipText="MATERIAL CHIP" />
ВЫХОД