Android材料芯片组件崩溃的应用程序。无法充气xml

问题描述 投票:9回答:4

来自两个支持库的Tried 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" />`
android android-support-library material-components android-chips material-components-android
4个回答
35
投票

更新您的应用主题以继承其中一个主题:

Theme.MaterialComponents
Theme.MaterialComponents.NoActionBar
Theme.MaterialComponents.Light
Theme.MaterialComponents.Light.NoActionBar
Theme.MaterialComponents.Light.DarkActionBar

例如:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">

注意:使用“材料组件”主题可启用自定义视图inflater

资料来源:https://www.material.io/develop/android/docs/getting-started/


1
投票

最后得到了如何使用新材料芯片动态生成芯片的解决方案

谷歌没有提供chipsInput布局的任何文档或如何制作像布局一样的gmail地址。使用ChipDrawable不会给出芯片上的删除操作选项,因为无法调用setOnCloseIconClickListener。我能够使用Horizo​​ntalScrollView,ChipGroup和EditText

这是我的代码示例:

MaterialChipsInputDemo


1
投票

将以下新主题属性添加到现有应用主题:

<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


-1
投票

添加包含在android支持库中的chip组件。

实现'com.android.support:design:28.0.0-rc01'

<android.support.design.chip.Chip
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 

    />

更多Reference

编辑

将其添加到您的gradle文件中

 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" />

OUTPUT

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.