我正在尝试向工具栏添加菜单。onCreateOptionsMenu
我的方法Activity
被调用,但是没有菜单出现。
这是dashboard.xml(来自菜单文件夹)
<?xml version="1.0" encoding="utf-8"?>
<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.app.android.ui.dashboard.DashboardActivity">
<item
android:id="@+id/action_scan_qr"
android:icon="@drawable/ic_drawer"
android:title="@string/menu_scan_qr"
app:showAsAction="always" />
</menu>
注意:此菜单的图标比操作栏的背景色深,因此应该可见。
活动中的膨胀菜单:
public class DashboardActivity extends ActionBarActivity {
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.dashboard, menu);
return true;
}
以及应用程序的主题:
<style name="Theme.Application.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@android:color/white</item>
<item name="colorPrimaryDark">@android:color/white</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="drawerArrowStyle">@style/Theme.Application.DrawerArrowStyle</item>
<item name="android:textColorSecondary">@android:color/darker_gray</item>
</style>
为什么onCreateOptionsMenu
被调用但是菜单没有出现。我正在使用appcompat-v7:21.0.3
编辑:
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentViewId());
toolbar = (Toolbar) findViewById(R.id.tool_bar);
if (toolbar == null) {
throw new Error("Can't find tool bar, did you forget to add it in Activity layout file?");
}
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
我不知道为什么,但是当我把所有与菜单相关的东西放到onPrepareOptionsMenu方法中时,一切正常。
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.dashboard, menu);
return super.onCreateOptionsMenu(menu);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句