Jak wyłączyć rozpoznawanie gestów w oknie kreatora? (przesuń palcem od lewej do prawej) i zaakceptuj tylko gest (od prawej do lewej) i otwórz szufladę tylko za pomocą przycisku strony głównej?Wyłączanie detektora gestów w DrawerLayout
Odpowiedz
Ten pracował dla mnie:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Możesz rozszerzyć szufladę, dotykając przycisku Strona główna i możesz użyć gestu przesuwania od prawej do lewej, aby go zamknąć. Jednak przesunięcie od lewej do prawej nie jest już wyzwalane.
Aby wyłączyć używanie rozpoznawania gest DrawerLayout:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
Następnie, aby umożliwić prawej do lewej bezstykowa, sprawdź ten zasób: http://android-journey.blogspot.com/2010/01/android-gestures.html
Dla setDrawerLockMode()
, to jest w kodzie, ale nie na Android developer docs:
/**
* The drawer is unlocked.
*/
public static final int LOCK_MODE_UNLOCKED = 0;
/**
* The drawer is locked closed. The user may not open it, though
* the app may open it programmatically.
*/
public static final int LOCK_MODE_LOCKED_CLOSED = 1;
/**
* The drawer is locked open. The user may not close it, though the app
* may close it programmatically.
*/
public static final int LOCK_MODE_LOCKED_OPEN = 2;
A teraz pojawi się na dokumentach dev: http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html#LOCK_MODE_LOCKED_CLOSED – greg7gkb
wyglądać znalazłem błąd. Na przykład, jeżeli zestaw:
android:layout_gravity="right"
lub
android:layout_gravity="left"
do zawartości szuflady i użyj .setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
wszystko będzie dobrze.
Ale w przypadku, gdy android:layout_gravity="left|center_vertical"
lub coś podobnego to LOCK_MODE_LOCKED_CLOSED
nie będzie działać.
Masz rację. Powód jest dobrze opisany tutaj przez @ A - C https://stackoverflow.com/questions/18413116/whyi-i-ant-lock-drawerlayout-with-layout-gravity/18413276#18413276 – Tina
Do odblokowania użyj mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_UNLOCKED); –
To nie działa w moim przypadku, zawsze otrzymuję szufladę na gest machnięcia, nawet jeśli ustawię układ szuflady z powyższym rozwiązaniem. –
Mam ten sam problem. –