Android-导航抽屉更改操作栏图标

Android-导航抽屉更改操作栏图标,android,navigation,icons,action,drawer,Android,Navigation,Icons,Action,Drawer,我有一个带有图标的操作栏: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/is_connected" android:icon="@drawable/ic_disconnected" android:title="@st

我有一个带有图标的操作栏:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
    android:id="@+id/is_connected"
    android:icon="@drawable/ic_disconnected"
    android:title="@string/general_disconnected"
    app:showAsAction="always"/>
然后打开导航抽屉,该项目图标将再次更改为初始状态ang:
@drawable/ic\u disconnected

有可能避免吗

更新:

    private void setupDrawer() {
    mDrawerList = (ListView) findViewById(R.id.navList);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mActivityTitle = getTitle().toString();

    addDrawerItem();

    mActionBar.setDisplayHomeAsUpEnabled(true);
    mActionBar.setHomeButtonEnabled(true);

    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) {

        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            //getSupportActionBar().setTitle("Menu");
            invalidateOptionsMenu();
        }

        /** Called when a drawer has settled in a completely closed state. */
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            invalidateOptionsMenu();
        }
    };

    mDrawerLayout.post(new Runnable() {
        @Override
        public void run() {
            mDrawerToggle.syncState();
        }
    });

    mDrawerToggle.setDrawerIndicatorEnabled(true);
    mDrawerLayout.setDrawerListener(mDrawerToggle);
}

你正在使用一个
动作bardrawertoggle
?@MikeM。是的,我用的是ActionBarDrawertogle。请看我下面的下一篇文章,它是对
invalidateOptionsMenu()
的调用导致的。如果你不需要它们,你可以移除它们。
    private void setupDrawer() {
    mDrawerList = (ListView) findViewById(R.id.navList);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mActivityTitle = getTitle().toString();

    addDrawerItem();

    mActionBar.setDisplayHomeAsUpEnabled(true);
    mActionBar.setHomeButtonEnabled(true);

    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) {

        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            //getSupportActionBar().setTitle("Menu");
            invalidateOptionsMenu();
        }

        /** Called when a drawer has settled in a completely closed state. */
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            invalidateOptionsMenu();
        }
    };

    mDrawerLayout.post(new Runnable() {
        @Override
        public void run() {
            mDrawerToggle.syncState();
        }
    });

    mDrawerToggle.setDrawerIndicatorEnabled(true);
    mDrawerLayout.setDrawerListener(mDrawerToggle);
}