【发布时间】:2021-04-12 07:03:25
【问题描述】:
我想在工具栏操作上显示一个徽章。徽章编号由 LiveData 值更新。
这是我附加徽章的方式:
BadgeUtils.attachBadgeDrawable(inboxBadgeDrawable, toolbar, R.id.menu_inbox);
我为那个电话尝试了不同的地方,包括Activity.onCreateOptionsMenu()、Activity.onPrepareOptionsMenu()和androidx.lifgecycle.Observer.onChanged()。
当发生任何变化(工具栏或徽章内容)时,徽章就会错位,向左下方移动。或者它被复制到另一个动作。
我猜attachBadgeDrawable 试图在工具栏中找到R.id.menu_inbox 的容器视图,插入徽章并更新它的偏移量。如果菜单项的容器视图发生变化,旧的容器视图仍然有旧的徽章,并且没有(明智的)方法可以删除它。此外,偏移量的应用似乎是叠加的。
那么,在工具栏操作图标上使用BadgeDrawable 是否有任何其他预期方式?
我了解此功能仍处于试验阶段。这个问题会得到解决吗?如果是,大约需要多长时间? (我现在使用com.google.android.material:material:1.3.0-beta01。)
这个问题主要针对组件的开发者,因为使用问题应该在这里根据https://github.com/material-components/material-components-android问。
编辑:我还在项目的跟踪器上创建了一个问题(功能请求):https://github.com/material-components/material-components-android/issues/1967
【问题讨论】:
标签: android android-toolbar material-components-android badge