【发布时间】:2015-06-30 04:39:19
【问题描述】:
我想在溢出堆栈中的菜单项上显示一个通知编号,以指示有 x 个可用更新。我知道您可以为菜单项设置一个图标,但我想在菜单项的右侧显示数字(Instabridge 这样做是为了表明热点索引正在更新)。我该如何解决这个问题?
【问题讨论】:
标签: android menu android-notifications menuitem
我想在溢出堆栈中的菜单项上显示一个通知编号,以指示有 x 个可用更新。我知道您可以为菜单项设置一个图标,但我想在菜单项的右侧显示数字(Instabridge 这样做是为了表明热点索引正在更新)。我该如何解决这个问题?
【问题讨论】:
标签: android menu android-notifications menuitem
我假设您所说的溢出堆栈是溢出弹出窗口。如果没有,这两个问题可能会解决您的问题:Actionbar notification count icon (badge) like Google has 和 Add new item count to icon on button - Android。
对于弹出窗口,您可能希望为通知编号创建自定义菜单视图,因为库不支持此模式。 (可能有更好的方法。)
但是,创建自定义菜单视图有点复杂。这是我从阅读源代码中得到的,未经测试!
首先,您需要创建您的 MenuView.ItemView 并向其中添加通知编号。您可以创建一个实现此接口的新视图,也可以使用 android 的 android.support.v7.internal.view.menu.ActionMenuItemView。
然后,您需要一个自定义的 ActionMenuPresenter 来使用您的菜单视图。在 ActionMenuPresenter 中,您可以将构造函数的第二个参数更改为您的视图。
public ActionMenuPresenter(Context context) {
super(context, R.layout.abc_action_menu_layout, R.layout.abc_action_menu_item_layout);
}
或覆盖 BaseMenuPresenter.createItemView 方法。
最后,您需要将 ActionMenuPresenter 与您的工具栏连接起来。
更多详情请参考源代码。
【讨论】: