为了账号安全,请及时绑定邮箱和手机立即绑定

DrawerLayout双抽屉(同时向左和向右抽屉)

DrawerLayout双抽屉(同时向左和向右抽屉)

冉冉说 2019-12-17 14:43:33
我有一个应用程序,我想在其中实现一个双抽屉-一个在左边,另一个在右边。左抽屉用于应用程序导航,右抽屉用于结果过滤。因此,布局如下所示:<?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。


查看完整回答
反对 回复 2019-12-17
  • 3 回答
  • 0 关注
  • 628 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信