我有一个应用程序,我想在其中实现一个双抽屉-一个在左边,另一个在右边。左抽屉用于应用程序导航,右抽屉用于结果过滤。因此,布局如下所示:<?xml version="1.0" encoding="utf-8"?><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"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/light_grey" android:orientation="vertical"> <GridView android:id="@+id/gridview" style="@style/GridViewStyle" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:horizontalSpacing="7dp" android:stretchMode="columnWidth" android:verticalSpacing="7dp" /> </LinearLayout> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="#111" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" /> <ListView android:id="@+id/right_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="end" android:background="#111" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" /></android.support.v4.widget.DrawerLayout>您可以在此处清楚地看到“ left_drawer”和“ right_drawer”,以及它们各自的重力-“开始”和“结束”,这实际上有效!您可以将它们全部拉出。问题是,当我实现DrawerToggle时-它仅打开左抽屉,而没有关闭右抽屉,因此,如果右抽屉被打开并且我按DrawerToggle按钮-左抽屉也将打开,并且与右抽屉重叠。我正在尝试几种解决方案:在右侧创建相同的DrawerToggle按钮,其行为和动画与左侧相同。将抽屉放在我要打开的抽屉的另一侧-自动关闭(如果左抽屉打开并且我按下右抽屉的扳钮,反之亦然)。而且我还没有弄清楚该怎么做,因为DrawerToggle接受DrawerLayout本身作为参数,而不是单个抽屉...我正在使用支持库。有人有想法么?先感谢您。
3 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
您可以在ToggleButton的处理程序中这样调用它,例如:
mDrawerLayout.openDrawer(mDrawer);
mDrawerLayout.closeDrawer(mDrawer);
其中mDrawer是对您需要打开的特定抽屉(是视图还是布局)的引用,在这种情况下,是您希望显示的实际ListView。
- 3 回答
- 0 关注
- 701 浏览
添加回答
举报
0/150
提交
取消