0

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

我怎样才能做到这一点?

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

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

        /* IMPLEMENTATION HERE */
    }
}
4

1 回答 1

1

从关于Menus的文档:

如果菜单项未作为操作项出现,则系统将其置于溢出菜单中。

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

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

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

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

于 2012-06-05T22:30:57.177 回答