Android material chip component crashing app. Unable to inflate xml

 ̄綄美尐妖づ 提交于 2019-11-26 14:41:53

问题


Tried Chip component from both support library
com.google.android.support:design:28.0.0-rc01 and 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)`

Layout

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

回答1:


Update your app theme to inherit from one of these themes:

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

For example:

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

Note: Using a Material Components theme enables a custom view inflater

Source: https://www.material.io/develop/android/docs/getting-started/




回答2:


You can juste add @style/Theme.MaterialComponents.Light style attribut in xml layout like this:

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



回答3:


Add the following new theme attributes to your existing app theme:

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

Source: https://material.io/develop/android/docs/getting-started/
Thanks @Paranoid42




回答4:


Finally Got a solution as how to generate chips dynamically using new material chips

Google has not provided any documentation for chipsInput layout or how to make a gmail address like layout. Using ChipDrawable won't give delete operation on chip option as can't call setOnCloseIconClickListener. I was able to do using HorizontalScrollView, ChipGroup and EditText

Here's my code sample :

MaterialChipsInputDemo




回答5:


Add chip component which is included in the android support library.

implementation '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

Edited

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

OUTPUT



来源:https://stackoverflow.com/questions/51877777/android-material-chip-component-crashing-app-unable-to-inflate-xml

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!