定义操作栏溢出项

时间:2012-02-14 10:47:57

标签: android android-layout android-intent android-emulator

如果我为操作栏定义以下项目:

res/menu/action_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:title="label"/>
    <item android:title="label1"/>
    <item android:title="label2"/>
    <item android:title="label3"/>
    <item android:title="label4"/>

</menu>

在我的活动中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.action_menu, menu);
    return true;
}

是否有允许我定义某些项目移动到动作溢出部分?以及如何做到这一点?

P.S。 Action overflow part是操作栏中最右边的部分,可以隐藏某些项目,例如弹出菜单。

2 个答案:

答案 0 :(得分:9)

反过来说。您需要在ActionBar中明确告诉菜单您想要哪些,而不是通过设置适当的标志

E.g。

<item android:id="@+id/refresh"
      android:title="@string/refresh"
      android:icon="@drawable/reload_button"
      android:showAsAction="always"/>

这里android:showAsAction讲述了如何处理它。选项是

  • 总是
  • ifRoom
  • 从未
  • withText

您可以将管道符号选为“always | withText”

有关更多文档,请参阅android docs for action bar

答案 1 :(得分:7)

为了向Heiko关于操作栏上“溢出菜单”的回答添加一些内容,只有当项目设置为ifRoom并且没有空间显示时才会发生这种情况。在溢出菜单上,它们仅显示标题而没有图标。

在Android 4.0上,溢出菜单(“3点微调器”)仅显示在没有物理“菜单”按钮的设备上。您可以在ADV上将选项Hardware Back/Home keys option设置为“否”进行测试。