【发布时间】:2019-04-03 21:26:36
【问题描述】:
在迁移到 android-x 之后,我注意到有很多日志说:
"E/itterforandroi: Invalid ID 0x00000000."
我设法向下循环到我正在创建一个新的 RecyclerView ViewHolder 并膨胀包含芯片的布局。其他所有字段都没有显示这样的错误,只有 Chip。
在 xml 中它看起来像这样:
<com.google.android.material.chip.Chip
android:id="@+id/someChip"
style="@style/Widget.MaterialComponents.Chip.Action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
app:chipIcon="@drawable/ic_account_circle_black_24dp"
app:chipIconEnabled="true" />
我找不到导致错误的定义中真正缺少的内容。有什么提示吗?
【问题讨论】:
-
对于AndroidX自定义实现github.com/karanatwal/MaterialChipsInput
-
我遇到了同样的问题,但它似乎已在材料组件 1.1.0 中修复(仍处于 alpha 阶段)
-
这是因为字体系列资源。即使在芯片中指定了字体系列,
TextAppearance.fontFamilyResourceId也会设置为零 (0),这会在每个设备上触发 Invalid ID 0x00000000。 metrial-1.0.0 中的芯片实现似乎无法处理字体相关信息。 -
可以确认这是material components 1.0.0的bug,使用新版本时(目前为:1.2.0-alpha02)更新版本,错误会修复
-
我可以确认这个 bug 仍然存在于 material:1.3.0-alpha01 中,并且在安装后首次启动应用程序以及 android 杀死应用程序并重新启动它时发生。
标签: android android-chips