我正在ICS上创建一个操作栏。由于间距,仅显示图标。 但是,如果按下手机的菜单按钮,我还想将操作栏提供为带有文本的上下文菜单。
我怎样才能做到这一点?
Atm我有3个图标。其中2个显示在操作栏的顶部。 如果我按下菜单电话按钮,则第3个显示为上下文菜单!但是我想拥有它们中的所有3个。
class MyActivity extends SherlockFragmentActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
/* IMPLEMENTATION HERE */
}
}
答案 0 :(得分:1)
来自Menus的文档:
如果菜单项没有显示为操作项,则系统会将其放在溢出菜单中。
因此,在操作栏和中显示相同的操作项是不可能的。您可以做的是:
检查(在运行时)哪些菜单项适合操作栏,哪些菜单项不适合。
对于操作栏中显示的每个菜单项,动态创建一个新的相同菜单项,确保调用newMenuItem.setShowAsAction(SHOW_AS_ACTION_NEVER)
以确保它显示在溢出菜单中(带文本)。
在我看来,这违反了Android的菜单设计标准,我不建议这样做。它可能看起来像是一个更好的设计选择,但用户希望应用程序在整个Android平台上保持一致。以奇怪的方式操作菜单会导致混淆,并可能对用户体验产生负面影响。