Android 为什么我的菜单项总是显示在溢出菜单中?
溢出点没有显示在屏幕截图中的原因是因为这个模拟器有一个菜单按钮。但按功能表确实会显示该项目 NerdLauncherFragment.java:Android 为什么我的菜单项总是显示在溢出菜单中?,android,android-actionbar,android-actionbar-compat,android-optionsmenu,Android,Android Actionbar,Android Actionbar Compat,Android Optionsmenu,溢出点没有显示在屏幕截图中的原因是因为这个模拟器有一个菜单按钮。但按功能表确实会显示该项目 NerdLauncherFragment.java: @Override public void onCreate(Bundle savedInstanceState) { … setHasOptionsMenu(true); … } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater infla
@Override
public void onCreate(Bundle savedInstanceState) {
…
setHasOptionsMenu(true);
…
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.nerd_launcher, menu);
}
nerd_launcher.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.bignerdranch.android.nerdlauncher.nerdlauncher.NerdLauncherActivity" >
<item android:id="@+id/action_settings"
android:icon="@drawable/ic_launcher"
android:title="R"
app:showAsAction="always" />
</menu>
当我按照其他答案中的建议为
showAsAction
创建自定义名称空间时,我想我肯定已经找到了答案,但我的项目仍然卡在溢出菜单中。试试下面的代码片段,它允许您禁用硬件菜单按钮并在操作栏中显示溢出图标
在onCreate方法中
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class
.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
在API 7级或更高级别上运行时,您可以通过扩展活动主题并将其设置为
theme.AppCompat
或类似主题,向活动添加ActionBar
。您的片段是否属于扩展ActionBarActivity
?@adneal这就是问题所在。它扩展了碎片活动。一旦我改为扩展ActionBarActivity,它就工作得很好。如果你愿意的话,贴一个答案,我会接受的。