隐藏基于屏幕的菜单项(活动)



隐藏菜单项基于屏幕(活动)的可能方法是在前台。我有四 (4) 个菜单项,我想在操作栏中显示两 (2) 个并强制 2 进入溢出菜单,在某些屏幕中我想显示三 (3) 并在溢出菜单中有一 (1) 个,在某些屏幕中页面磁贴很长我不希望它被截断,而是只想在操作栏中显示一 (1) 个菜单项并强制其他三 (3)进入溢出菜单。

我需要一种通用方法来做到这一点。

我需要以编程方式执行此操作,我不需要 IfRoom 的 xml 答案,我有一个扩展 ActionBar 的 BaseActivity,我有 BaseActivityHelper,我的菜单布局膨胀了,我的所有其他活动都扩展了 BaseActivity。

我很想分享我的代码,但我不允许这样做,最大的问题是如果你是面对这种情况的人,你将如何去做。

文档说:

如果要根据活动生命周期中发生的事件修改选项菜单,可以在 onPrepareOptionsMenu() 方法中执行此操作。此方法将当前存在的 Menu 对象传递给它,以便您可以对其进行修改,例如添加、删除或禁用项。(片段还提供 onPrepareOptionsMenu() 回调。

因此,您可以在onPrepareOptionsMenu中获取菜单项,并使用适当的选项(SHOW_AS_ACTION_ALWAYS,SHOW_AS_ACTION_IF_ROOM或SHOW_AS_ACTION_NEVER)调用setShowAsAction(int actionEnum)

最新更新