如果有解决方案在同一方面实施2 DrawerLayouts
(2 LayoutDrawers
与layout_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);
当我左右两侧有抽屉时,代码工作正常。
答案 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示例之一,希望它有所帮助。