java - 还为菜单按钮显示操作栏?

标签 java android actionbarsherlock

我正在 ICS 上创建一个操作栏。由于间距的原因,仅显示图标。 但如果按下手机的菜单按钮,我还想将操作栏作为上下文菜单提供文本。

我怎样才能实现这个目标?

Atm 我有 3 个图标。其中 2 个显示在操作栏的顶部。 如果我按下菜单电话按钮,第三个将显示为上下文菜单!但我想拥有这三个。

class MyActivity extends SherlockFragmentActivity {
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();

        /* IMPLEMENTATION HERE */
    }
}

最佳答案

来自 Menus 的文档:

If a menu item does not appear as an action item, then the system places it in the overflow menu.

因此,不可能在操作栏和溢出菜单中显示相同的操作项。您可以做的是:

  1. 检查(在运行时)哪些菜单项适合操作栏,哪些不适合。

  2. 对于操作栏中显示的每个菜单项,动态创建一个新的、相同的菜单项,并确保调用 newMenuItem.setShowAsAction(SHOW_AS_ACTION_NEVER) 以确保其显示在溢出菜单中(带文本)。

在我看来,这违背了 Android 的菜单设计标准,我不建议这样做。在您看来,这可能是一个更好的设计选择,但用户希望应用程序在整个 Android 平台上保持一致。以奇怪的方式操作菜单可能会导致困惑,并可能对用户体验产生负面影响。

关于java - 还为菜单按钮显示操作栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905518/

相关文章:

java - 来自可迭代的通量如何处理背压

java IF语句条件被忽略

java - 如何从 javax.naming.directory.Attribute 中提取值

java - 如何获取从当前位置到下一步的距离、方向、持续时间?

android - 在 ActionBar 上隐藏主页按钮 Sherlock Actionbar 扩展导航 Activity

java - 如何在mongoDB中批量插入

java - 如何将进度值从线程传递到 Activity ?

android - 如何从 Value 中获取 Resource.Id?

java - 向 ActionBar 项目添加监听器,onOptionsItemSelected NullPointerException

android - SherlockFragmentActivity 导致 ClassNotFoundException