Android 导航抽屉开关不';不改变状态

Android 导航抽屉开关不';不改变状态,android,navigation-drawer,Android,Navigation Drawer,我开始一个新项目,只是从一个旧项目复制/粘贴代码,在那里一切正常。在这种情况下,一个切换按钮不会改变状态(它只是一个箭头,在我按下时不起作用),如: 到 使用滑动触摸开关打开/关闭抽屉工作正常 必须注意,我只使用了一个具有布局的活动: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.

我开始一个新项目,只是从一个旧项目复制/粘贴代码,在那里一切正常。在这种情况下,一个切换按钮不会改变状态(它只是一个箭头,在我按下时不起作用),如:

使用滑动触摸开关打开/关闭抽屉工作正常

必须注意,我只使用了一个具有布局的活动:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/base_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">


<RelativeLayout
    android:id="@+id/base_container_for_fragments"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    //elements for screen

</RelativeLayout>


<!--that is just for drawer-->
<ListView
    android:id="@+id/navigationDrawerList"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:layout_gravity="left|start"
    android:background="@color/color_red_style" />
addDrawerItems()
工作正常

 protected void setupDrawer() {
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open_drawer, R.string.close_drawer) {

        /** Called when a drawer has settled in a completely open state. */
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            getSupportActionBar().setTitle(getResources().getString(R.string.bar_menu));
            invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
        }

        /** Called when a drawer has settled in a completely closed state. */
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            getSupportActionBar().setTitle("produse");


            // creates call to onPrepareOptionsMenu()
            invalidateOptionsMenu();
        }
    };

    mDrawerToggle.setDrawerIndicatorEnabled(true);
    mDrawerLayout.setDrawerListener(mDrawerToggle);
}
当然,我在选项ItemSelected(MenuItem项)


那么问题是什么,我只是不知道。。。任何想法都将不胜感激。

天哪,我忘记了同步按钮切换状态:)

我必须在我的
MainActivity()
中添加此项:

看看这个:我意识到我的
   dataList = new ArrayList<DrawerItem>();
    mDrawerLayout = (DrawerLayout) findViewById(R.id.base_layout);
    mDrawerList = (ListView) findViewById(R.id.navigationDrawerList);

    addDrawerItems();
    setupDrawer();
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
 protected void setupDrawer() {
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open_drawer, R.string.close_drawer) {

        /** Called when a drawer has settled in a completely open state. */
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            getSupportActionBar().setTitle(getResources().getString(R.string.bar_menu));
            invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
        }

        /** Called when a drawer has settled in a completely closed state. */
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            getSupportActionBar().setTitle("produse");


            // creates call to onPrepareOptionsMenu()
            invalidateOptionsMenu();
        }
    };

    mDrawerToggle.setDrawerIndicatorEnabled(true);
    mDrawerLayout.setDrawerListener(mDrawerToggle);
}
 // Activate the navigation drawer toggle
    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
@Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }