我知道以前曾多次询问过这个问题。但我想我必须自己提出这个问题,因为现有的问题都不符合我的问题:
我正在为Kitkat(4.4)开发并尝试使用主题为的动作栏:holo.light.darkActionBar。
我使用菜单中的项创建了一些xml文件,并将它们在java类中链接到活动:
菜单/主:
<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=".MainActivity">
<item android:id="@+id/action_filter"
android:title="@string/action_filter"
android:orderInCategory="100"
android:icon="@drawable/ic_action_filter"
app:showAsAction="ifRoom" />
MainActivity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
menu.clear();
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
问题如下: 当我单击menu / main.xml时,我可以看到一个项目被添加到操作栏。但它永远不会出现在activity_main.xml中。
我搜索了很多个小时,并考虑了以下内容: -set minSDK为19 -i知道有一段时间它没有显示,因为设备有一个菜单按钮。但我用一个图标说它应该显示出来。因此它应该出现。而且我还使用了没有菜单按钮的Nexus Emulation。 - 我使用Android工作室和android studio的assistentce插入活动。 - mainActivity扩展了FragmentActivity(因为我选择了谷歌地图活动) - 我尝试了其他主题但是动作栏完全消失了(oc没有使用.noActionBar!) - 我为动作栏设置了一个样式,在那里我指定了一种红色。此颜色将传播到活动,但不会传播到项目。
我的导入是:
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.view.Menu;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
应该如何看待:
它看起来如何:
我真的希望你们中的一些人可以帮助我,这让我疯狂。
答案 0 :(得分:1)
我认为,使菜单膨胀的代码应如下所示:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
并删除menu.clear()
行。
答案 1 :(得分:0)
尝试使用主题为:holo.light.darkActionBar
的操作栏
这意味着您正在尝试使用本机操作栏。
我使用菜单中的项创建了一些xml文件,并将它们在java类中链接到活动
删除app
命名空间,并将app:showAsAction
重命名为android:showAsAction
。 app
约定用于您未使用的appcompat-v7
操作栏后退。
MainActivity:
摆脱menu.clear()
。
但它永远不会出现在activity_main.xml中。
不应该这样。它应该在您运行应用程序时显示,而不一定在其他资源的编辑器中显示。
我还使用了没有菜单按钮的Nexus仿真
当然有Nexus设备带有MENU按钮。尝试按 PgUp ;如果你从屏幕底部看到溢出菜单,你的模拟器有一个MENU按钮。