Android 在菜单项旁边显示通知编号

Android display notification number next to menu item

我想在溢出堆栈中的菜单项上显示一个通知编号,以指示有 x 个更新可用。我知道你可以为菜单项设置一个图标,但我想在菜单项的右侧显示数字(Instabridge 这样做是为了指示热点索引正在更新)。我该如何解决?

我假设您所说的溢出堆栈是 OverflowPopup。如果不是,这两个问题可能会解决您的问题:Actionbar notification count icon (badge) like Google has, and 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 与您的工具栏连接起来。

详情请参考源码