使用导航抽屉时,我无法更改右侧的ActionBar图标

时间:2015-03-04 03:04:53

标签: java android android-actionbar navigation-drawer

对于我的应用程序,我有一个导航抽屉,并在您第一次创建应用程序时使用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);
}

我需要采取或采取的另一个步骤才能使其发挥作用吗?

3 个答案:

答案 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"/>