定义操作栏溢出项

Mel*_*lon 5 android android-emulator android-intent android-layout

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

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>
Run Code Online (Sandbox Code Playgroud)

在我的活动中:

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

反正有没有允许我定义某些项目移动到动作溢出部分?怎么做?

PS 动作溢出部分是动作栏的最右侧部分,它隐藏某些项目,如弹出菜单.

Hei*_*upp 9

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

例如

<item android:id="@+id/refresh"
      android:title="@string/refresh"
      android:icon="@drawable/reload_button"
      android:showAsAction="always"/>
Run Code Online (Sandbox Code Playgroud)

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

  • 总是
  • ifRoom
  • 决不
  • withText

您可以或使用管道符号选择"always | withText"

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

  • 只是为了澄清一下,因为很难在任何地方找到这个拼写,如果你将showAsAction设置为"never",它将被移动到溢出菜单.(文档在许多地方都谈到将不经常使用的行为降级到溢出,但没有任何线索可以解决这个问题......即使你怀疑showAsAction,官方文档只是说"永远:永远不要放置这个项目在操作栏中." - 如果在任何地方,它们都不会清楚它的位置.另请注意,在某些设备上,"溢出"可能会在物理菜单按钮而不是操作栏下结束.) (4认同)

nse*_*iuk 7

要在Heiko关于操作栏上"溢出菜单"的回答中添加一些内容,只有将项目设置为ifRoom并且没有显示空间时才会出现这种情况.在溢出菜单上,它们仅显示标题而没有图标.

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

  • "要在操作栏上添加关于Heiko关于"溢出菜单"的回答,只有当你将项目设置为ifRoom并且没有空间可以显示时,才会发生这种情况." - 或者如果你设置为"从不",无论是否有空间. (3认同)