Mam aplikację, w której chcę zaimplementować podwójną szufladę - jedną z lewej i jedną z prawej. Lewa szuflada służy do nawigacji w aplikacji, prawy szuflada służy do filtrowania wyników.DrawerLayout Double Drawer (lewa i prawa szuflady jednocześnie)
więc układ jest tak:
<?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>
Widać tu „left_drawer” i „right_drawer”, a ich odpowiednie grawitacji - „start” i „koniec” I to naprawdę działa! Możesz je wyciągnąć.
Problem polega na tym, że gdy wdrażam DrawerToggle - otwiera tylko lewą szufladę i nie zamyka prawej, więc jeśli prawą szufladę otworzył i wcisnąłem przycisk DrawerToggle - lewa szuflada otwiera się TAKŻE, zachodzi na prawą szufladę.
Istnieje kilka rozwiązań I'am próbuje dostać:
- Zrób sam przycisk DrawerToggle po prawej stronie, a tym samym zachowanie i animacji, jak po lewej stronie.
- Ustaw szufladę po przeciwnej stronie szuflady, którą próbuję otworzyć - automatycznie zamknij (jeśli lewa szuflada jest otwarta i naciskasz przełącznik prawej szuflady i vise-versa).
I nie zorientowali, jak to zrobić, ponieważ DrawerToggle akceptuje DrawerLayout sama jako parametr, a nie poszczególne szuflady ...
Używam Library Support.
Ktoś ma jakieś pomysły? Z góry dziękuję.
Zapomniałem powiedzieć, że to sprawia, że korzystanie z pomocy v7 AppCompat lib http://developer.android.com/tools/support-library/features.html –
też jeśli chcesz glyphe poruszać tylko dla lewej szufladzie, można to zrobić w metodzie onDrawerSlide: \t \t \t \t \t if (drawerView == leftDrawer) super.onDrawerSlide (drawerView, slideOffset); –
@ DanielLópezLacalle Dziękuję za odpowiedź. Podążyłem za twoim kodem i nie dostarczyłem żadnych błędów, ale nawet po tym oświadczeniu widać wszystko po prawej stronie paska akcji ... nic. – Abstract