Android material 芯片组件崩溃应用。无法充气xml
Android material chip component crashing app. Unable to inflate xml
尝试了来自两个支持库的芯片组件
com.google.android.support:design:28.0.0-rc01
和 material
com.google.android.material:material:1.0.0-rc01
StackTrace
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" />`
终于找到了如何使用新的 material 筹码动态生成筹码的解决方案
Google 没有提供任何有关 chipsInput 布局或如何制作类似布局的 gmail 地址的文档。使用 ChipDrawable 不会对芯片选项进行删除操作,因为无法调用 setOnCloseIconClickListener。我能够使用 HorizontalScrollView、ChipGroup 和 EditText
这是我的代码示例:
将以下新主题属性添加到您现有的应用主题中:
<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
Theme.MaterialComponents.NoActionBar
Theme.MaterialComponents.Light
Theme.MaterialComponents.Light.NoActionBar
Theme.MaterialComponents.Light.DarkActionBar
例如:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
Note: Using a Material Components theme enables a custom view inflater
来源:
https://www.material.io/develop/android/docs/getting-started/
您可以像这样在 xml 布局中添加 @style/Theme.MaterialComponents.Light 样式属性:
<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"/>
您可以使用Theme.MaterialComponents.**.Bridge
替换您之前的主题。
例如,如果旧主题是 Theme.AppCompat.DayNight.NoActionBar
,则新主题将是 Theme.MaterialComponents.DayNight.NoActionBar.Bridge
。
见https://material.io/develop/android/docs/getting-started#bridge-themes
尝试了来自两个支持库的芯片组件
com.google.android.support:design:28.0.0-rc01
和 material
com.google.android.material:material:1.0.0-rc01
StackTrace
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" />`
终于找到了如何使用新的 material 筹码动态生成筹码的解决方案
Google 没有提供任何有关 chipsInput 布局或如何制作类似布局的 gmail 地址的文档。使用 ChipDrawable 不会对芯片选项进行删除操作,因为无法调用 setOnCloseIconClickListener。我能够使用 HorizontalScrollView、ChipGroup 和 EditText
这是我的代码示例:
将以下新主题属性添加到您现有的应用主题中:
<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
Theme.MaterialComponents.NoActionBar
Theme.MaterialComponents.Light
Theme.MaterialComponents.Light.NoActionBar
Theme.MaterialComponents.Light.DarkActionBar
例如:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
Note: Using a Material Components theme enables a custom view inflater
来源: https://www.material.io/develop/android/docs/getting-started/
您可以像这样在 xml 布局中添加 @style/Theme.MaterialComponents.Light 样式属性:
<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"/>
您可以使用Theme.MaterialComponents.**.Bridge
替换您之前的主题。
例如,如果旧主题是 Theme.AppCompat.DayNight.NoActionBar
,则新主题将是 Theme.MaterialComponents.DayNight.NoActionBar.Bridge
。
见https://material.io/develop/android/docs/getting-started#bridge-themes