对于我的应用程序,我有一个导航抽屉,并在您第一次创建应用程序时使用Android Studio中提供的抽屉。我正在尝试更改操作栏右侧的图标,该图标当前是3个点以上。我创建了一个菜单xml文件,其中包含图标,标题,ID和所有内容,每当我对其进行充气时,我都会使用我为其创建的正确菜单xml文件。我想添加一个简单的" +"那里的图标,无法弄明白。
这是我的菜单xml文件。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_profile"
android:icon="@drawable/ic_add_new"
android:title="@string/add_title"
android:showAsAction="always"
/>
</menu>
这是onCreate方法。我的菜单文件名为menu_add_profiles。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!mNavigationDrawerFragment.isDrawerOpen()) {
getMenuInflater().inflate(R.menu.menu_add_profiles, menu);
restoreActionBar();
return true;
}
return super.onCreateOptionsMenu(menu);
}
我需要采取或采取的另一个步骤才能使其发挥作用吗?
答案 0 :(得分:0)
当你的导航抽屉打开时,你当前正在给菜单充气..你需要删除这个条件,一切都会对你有用。下面的东西应该可以工作。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_add_profiles, menu);
restoreActionBar();
return true;
}
答案 1 :(得分:0)
使用此
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
http://developer.android.com/training/implementing-navigation/nav-drawer.html
答案 2 :(得分:0)
我遇到了同样的问题并找到了解决方案:
将android:showAsAction="always"
更改为app:showAsAction="always"
并添加xmlns:app="http://schemas.android.com/apk/res-auto"
。
这是我的menu.xml
:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_add_dialog"
android:icon="@drawable/ic_add_24dp"
android:title="@string/action_add"
app:showAsAction="always"
android:visible="true" />
<item android:id="@+id/action_settings_pref"
android:icon="@drawable/ic_settings_applications_24dp"
android:title="@string/action_add"
app:showAsAction="always"
android:visible="true"/>