Android 安卓材料芯片组件崩溃应用程序。无法膨胀xml
已尝试使用两个支持库中的芯片组件Android 安卓材料芯片组件崩溃应用程序。无法膨胀xml,android,android-support-library,material-components,android-chips,material-components-android,Android,Android Support Library,Material Components,Android Chips,Material Components Android,已尝试使用两个支持库中的芯片组件 com.google.android.support:design:28.0.0-rc01和material com.google.android.material:material:1.0.0-rc01 StackTrace 布局 <com.google.android.material.chip.Chip android:id="@+id/chip" style="style/Widget.MaterialComponents.Chip
com.google.android.support:design:28.0.0-rc01
和materialcom.google.android.material:material:1.0.0-rc01
StackTrace
布局
<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" />`
`
最终找到了一个解决方案,即如何使用新材料芯片动态生成芯片
谷歌还没有提供任何关于芯片输入布局或如何制作类似gmail地址布局的文档。使用ChipDrawable不会提供片上删除操作选项,因为无法调用setOnCloseIconClickListener。我可以使用HorizontalScrollView、芯片组和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>
@颜色/我的应用程序主颜色
@颜色/我的应用程序主颜色深颜色
@颜色/我的应用程序\u口音\u颜色
?属性/颜色初级
@颜色/mtrl_scrim_颜色
@样式/文本外观。材料组件。标题1
@样式/文本外观。材料组件。标题2
@样式/文本外观。材料组件。标题3
@样式/文本外观。材料组件。标题4
@样式/文本外观。材料组件。标题5
@样式/文本外观。材料组件。标题6
@样式/文本外观。材质组件。副标题1
@样式/文本外观。材质组件。副标题2
@样式/文本外观.材料组件.车身1
@样式/文本外观.材料组件.车身2
@样式/文本外观.MaterialComponents.Caption
@样式/文本外观.MaterialComponents.Button
@样式/文本外观.材质组件.上划线
来源:感谢@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">
注意:使用材质组件主题可启用自定义视图充气器
资料来源:
您只需在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"/>
您是否尝试过实现'com.android.support:design:28.0.0-rc01'
是的,我尝试过。同样的问题检查我的回答你是否扩展了所提供的主题中的一个?Paranoid42谢谢你提供的信息。。事实上我没有那样做。检查后会回来。是的,最初这就是问题所在。。我用的是appcompat,当我使用芯片时,它会显示一个黑屏,但至少不会崩溃。我想知道为什么应用程序中的com.google.android.material
小部件不会膨胀。这就是原因!省去了我好几个小时的挠头。上帝保佑你,在我的情况下,val chip=new chip(context)
和val chip=layoutInflater.from(context).inflate
都失败了,尽管我的主题是材料。这是因为我传递了错误的上下文(应用程序上下文而不是活动上下文)。因此,我的材料主题尚未应用。谢谢!它就像一个符咒,不会更改应用程序主题属性。获取此组件上的样式需要应用程序主题为Theme.MaterialComponents(或其后代)。
<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"/>