安卓工作室,关闭后打开抽屉

时间:2015-01-16 21:50:13

标签: android drawer

我有一个抽屉,我试图加倍它。好吧,它很顺利,但我有一个问题的一部分。 如果我打开第一个抽屉并点击某个项目,它会打开一个新的抽屉,您可以再次选择。到现在为止还挺好。 问题是我要添加一项功能,如果你在第二个抽屉上并关闭它,它会立即打开第一个抽屉。

public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
            invalidateOptionsMenu();
            if(layer == 1){
                layer = 0;
                positions = new int[]{-1, -1};
                drawerListview.setAdapter(adapter);
                ***drawerLayout.openDrawer(drawerLayout);***
            }else if(layer == 2){
                layer = 0;
                positions = new int[]{-1, -1};
                drawerListview.setAdapter(adapter);
            }
        }

我标记了我试图再次打开第一个抽屉的地方。 它没有t throw any error but it just didn起作用。

2 个答案:

答案 0 :(得分:0)

在下面的代码段中,我将省略layer和适配器代码,因为它对抽屉没有明显影响(至少对我而言)。

您要做的是检查关闭的抽屉是否正确,然后询问抽屉布局 打开左侧

public void onDrawerClosed(View drawerView) {
    super.onDrawerClosed(drawerView);
    // store the mRightDrawerView as variable in onCreate...
    if (drawerView == mRightDrawerView) {
        // you ask the layout to open left drawer
        mDrawerLayout.openDrawer(mLeftDrawerView);
        // or mDrawerLayout.openDrawer(GravityCompat.START);
    }
}

乍一看,您的代码非常接近。

答案 1 :(得分:0)

您希望在再次打开之前等待抽屉的动画完成:

@Override
public void onDrawerClosed(View view) {
    super.onDrawerClosed(view);
    mDrawer.post(new Runnable() {
        @Override
        public void run() {
            mDrawer.openDrawer(Gravity.START);
        }
    });
}

Gravity.START用于xml布局:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- The navigation drawer -->
    <ListView
        android:id="@+id/left_drawer"
              android:layout_width="240dp"
              android:layout_height="match_parent"
              android:layout_gravity="start"/>
</android.support.v4.widget.DrawerLayout>
相关问题