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

时间:2015-11-18 07:38:58

标签: 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="@string/general_disconnected"
    app:showAsAction="always"/>

当我以这种方式更改该图标时:

mActionBarMenu.getItem(0).setIcon(getResources().getDrawable(R.drawable.ic_connected));

并打开导航抽屉,该项目图标再次变为初始状态ang:@drawable/ic_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);
}

0 个答案:

没有答案