Android 操作栏项未显示在选项菜单中

Android 操作栏项未显示在选项菜单中,android,menu,android-actionbar,option,Android,Menu,Android Actionbar,Option,当“菜单项”中的项目已经显示在操作栏上时,我无法显示这些项目 这是我的OnCreateOptions菜单方法: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.opt_menu_main, menu); return super.onCreateOptionsMenu(menu); } 这是我的选择菜单主布局: <menu xmlns:an

当“菜单项”中的项目已经显示在操作栏上时,我无法显示这些项目

这是我的OnCreateOptions菜单方法:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.opt_menu_main, menu);
    return super.onCreateOptionsMenu(menu);
}
这是我的选择菜单主布局:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item
    android:id="@+id/menu_act_settings"
    android:title="Settings" 
    android:icon="@drawable/ic_action_settings"
    android:showAsAction="ifRoom"/>
</menu>

我没有使用支持库(我的目标API是17)

如果我点击按钮菜单,它总是空的,因为项目已经显示在操作栏上。 我试图添加更多的项目,但当这些项目出现在操作栏上时,它们不会显示在选项菜单中

我也尝试过使用
showAsAction=“ifRoom | withText”
,但不起作用

我认为这种行为是正确的,但是否可以同时在菜单和操作栏中显示相同的项目

谢谢

试试这个:

app:showAsAction="always"
但别忘了在定义的开头加上这一行:

xmlns:app="http://schemas.android.com/apk/res-auto"

菜单项的Id必须是唯一的。最好的选择是使用另一个Id创建另一个菜单项,并将其showAsAction设置为“从不”,以强制它始终进入溢出菜单。但是,如果您同时显示其他主要选项,则可能会将这两个选项强制溢出,在这种情况下,您将看到两个具有相同标题的菜单项。

目前我是这样解决的:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item
    android:id="@+id/menu_act_settings"
    android:title="Settings" 
    android:icon="@drawable/ic_action_settings"
    android:showAsAction="always"/>
    <item
    android:id="@+id/menu_settings"
    android:title="Settings" 
    android:showAsAction="never"/>
</menu>
我认为这不是一个正确的解决方案,因为在某些设备上,没有足够的空间在ActionBar上添加此项和其他项, 由于它们被定义为showAsAction=“always”,它们将在ActionBar标题上重叠,因此可能会产生一些布局问题

我想要的行为是始终在选项菜单上显示项目,如果有足够的空间,也在操作栏中显示项目

使用showAsAction=“始终”无法获得此行为

如果有人能找到更好的解决方案,那就太好了


无论如何,谢谢。

谢谢正是我所做的,我以为我已经解决了这个问题,但我注意到在另一台没有足够空间的设备上,溢出菜单中有两项,所以我问了这个问题。也许可以设置两个不同的菜单,一个用于操作栏,一个用于选项菜单?不。它们被认为是同一个菜单。谢谢,但如果我设置为“始终”,该项将不会显示在选项菜单上。我想在菜单和操作栏上显示相同的项目。不,我在菜单和操作栏上都有“刷新”按钮,带有此选项!我现在再试了一次,但使用android:showAsAction=“always”时,选项菜单中没有任何项目,它只显示在操作栏中。一周前,我尝试使用支持库(因此使用xmlns:app-tag和app:showAsAction),但得到了相同的结果,所以现在我删除了支持库。我认为我不应该使用支持库,因为我的目标API是17
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
        case R.id.menu_add_schedule:
        case R.id.menu_act_add_schedule:
                //some code
            break; 
        }
    return true; 
}