У меня есть приложение, в котором я хочу реализовать двойной ящик - один слева и один справа. Левый ящик предназначен для навигации по приложениям, правый ящик предназначен для фильтрации результатов.
Итак, макет таков:
<?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 как параметр, а не отдельные ящики...
Я использую библиотеку поддержки.
У кого-нибудь есть идеи? Заранее благодарю вас.