2 LayoutDrawers在同一侧

时间:2014-05-05 20:14:11

标签: android drawerlayout

如果有解决方案在同一方面实施2 DrawerLayouts(2 LayoutDrawerslayout_gravity="start"),我无法找到答案。我可以在山姆一侧打开2个抽屉,但是当我试图关闭抽屉第二个抽屉时,我会收到错误。

05-05 20:03:34.577: E/AndroidRuntime(14638): java.lang.NullPointerException
05-05 20:03:34.577: E/AndroidRuntime(14638):    at android.support.v4.widget.ViewDragHelper.continueSettling(ViewDragHelper.java:719)
05-05 20:03:34.577: E/AndroidRuntime(14638):    at android.support.v4.widget.DrawerLayout.computeScroll(DrawerLayout.java:764)
...

我没有使用ActionBarDrawerToggle我覆盖了onOptionsItemSelected来抓住行动栏图标点击并打开抽屉

mDrawerLayout.openDrawer(mDrawerFrameLeft);

当我左右两侧有抽屉时,代码工作正常。

1 个答案:

答案 0 :(得分:1)

不要将layout_gravity="start"用于多个布局抽屉,您必须考虑左侧导航和右侧导航的位置,并且必须使用layout_gravity="left"进行左侧导航并layout_gravity="right"用于正确的导航,例如下面的内容:

 <android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>
     <ListView
        android:id="@+id/right_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#123456"
         />
     </android.support.v4.widget.DrawerLayout>   

这是左右导航抽屉的good示例之一,希望它有所帮助。