Comment désactiver la reconnaissance des gestes pour DrawerLayout? (balayez de gauche à droite) et n'acceptez que le geste de fermeture (de droite à gauche) et ouvrez le tiroir avec le bouton d'accueil?
Cela a fonctionné pour moi:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Vous pouvez agrandir le tiroir en appuyant sur le bouton Accueil et utiliser un geste de balayage de droite à gauche pour le fermer. Cependant, le balayage de gauche à droite n'est plus déclenché.
Pour setDrawerLockMode()
, cela se trouve dans le code mais pas dans la documentation développeur Android :
/**
* 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;
Pour désactiver la reconnaissance des gestes DrawerLayout, utilisez:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
Ensuite, pour activer le balayage de droite à gauche, vérifiez la ressource suivante: http://Android-journey.blogspot.com/2010/01/Android-gestures.html
On dirait que j'ai trouvé un bug. Par exemple si défini:
Android:layout_gravity="right"
ou
Android:layout_gravity="left"
pour le contenu du tiroir et l'utilisation de .setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
tout ira bien.
Mais dans le cas où Android:layout_gravity="left|center_vertical"
ou quelque chose du genre LOCK_MODE_LOCKED_CLOSED
ne fonctionnera pas.
Le LOCK_MODE_LOCKED_CLOSED
empêche actuellement complètement l'affichage du menu de navigation, même via le menu hamburger (ce qui peut être indésirable). Ce qui suit a fonctionné pour moi: https://stackoverflow.com/a/52160351/377320
Cela a fonctionné pour moi:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Vous pouvez agrandir le tiroir en appuyant sur l'icône Hamburger ou sur le bouton à partir duquel vous devez vous déclencher. Cependant, le balayage de gauche à droite n'est plus déclenché.