当前位置: 首页 > 知识库问答 >
问题:

DrawerLayout双抽屉(同时设置左右抽屉)

洪黎昕
2023-03-14

我有一个应用程序,在其中我想实现一个双抽屉--一个从左边,一个从右边。左抽屉是app导航,右抽屉是结果过滤。

<?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>

有几个解决方案我正在尝试:

  1. 在右侧使用与左侧相同的行为和动画制作相同的DrawerToggle按钮。
  2. 使我试图打开的抽屉对面的抽屉自动关闭(如果左抽屉打开,而我按右抽屉的切换键,反之亦然)。

我还没想好怎么做,因为DrawerToggle接受DrawerLayout本身作为参数,而不是单个的抽屉...

我正在使用支持库。

有人有什么想法吗?提前谢谢你。

共有1个答案

阚原
2023-03-14

您可以在ToggleButton的处理程序中这样调用它,例如:

mDrawerLayout.openDrawer(mDrawer);
mDrawerLayout.closeDrawer(mDrawer);

其中,mDrawer是对需要打开的特定抽屉的引用(不管是视图还是布局),在您的情况下,是希望显示的实际ListView。

 类似资料:
  • 首先,我知道这个问题以前在这里出现过,但试了很多,还是没有成功。我在Android开发者网站上做这个例子。 你能帮我弄清楚我的代码中的问题是什么,为了设置菜单从右边打开,以及为了将操作栏按钮移到右边,我应该做些什么改变吗? xml代码如下所示:

  • 我知道如何改变抽屉图标,如果它在左侧,但我没有找到任何解决方案,改变导航抽屉汉堡图标,如果抽屉是在右侧。任何帮助都是可以感激的。

  • 本文向大家介绍Android组件之DrawerLayout实现抽屉菜单,包括了Android组件之DrawerLayout实现抽屉菜单的使用技巧和注意事项,需要的朋友参考一下 DrawerLayout组件同样是V4包中的组件,也是直接继承于ViewGroup类,所以这个类也是一个容器类。 抽屉菜单的摆放和布局通过android:layout_gravity属性来控制,可选值为left、right或

  • 有可能吗? 更新:是的,使用工具栏小部件我看到边距。但我有另一个问题:这是白色的导航抽屉 但是当我使用 我看到黑色的背面图标 我可以以编程方式将后退按钮设为白色吗?或者仅使用自定义图标?

  • 我想从右到左像图片一样打开

  • 有些时候, Dialog 组件并不满足我们的需求, 比如你的表单很长, 亦或是你需要临时展示一些文档, Drawer 拥有和 Dialog 几乎相同的 API, 在 UI 上带来不一样的体验. tip 因为 Vue 提供了 v-model 的原生支持,所以以前的 visible.sync 已经不再适用,请使用 v-model="visibleBinding" 的表达式来绑定是否显示抽屉组件 基本用