it-swarm.com.de

Deaktivieren Sie den Gestenlistener für DrawerLayout

Wie kann ich die Gestenerkennung für das DrawerLayout deaktivieren? (streichen Sie von links nach rechts) und akzeptieren Sie nur die Schließbewegung (von rechts nach links) und öffnen Sie die Schublade nur mit der Home-Taste. 

60

Das hat für mich funktioniert:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

Sie können die Schublade erweitern, indem Sie auf die Starttaste tippen, und Sie können sie mit der Wischbewegung von rechts nach links verwerfen. Ein Wischen von links nach rechts wird jedoch nicht mehr ausgelöst.

146
Thuy Trinh

Für setDrawerLockMode() ist dies im Code, aber nicht in der Android-Entwickler 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;
19
greg7gkb

So deaktivieren Sie die DrawerLayout-Gestenerkennung:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);

Überprüfen Sie anschließend die Ressource von rechts nach links: http://Android-journey.blogspot.com/2010/01/Android-gestures.html

3
Hadi

Sieht aus, als hätte ich einen Fehler gefunden. Zum Beispiel wenn gesetzt:

Android:layout_gravity="right"

oder

Android:layout_gravity="left"

für den Inhalt der Schubladen und deren Verwendung .setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) wird alles in Ordnung sein.

Aber wenn Android:layout_gravity="left|center_vertical" oder so etwas LOCK_MODE_LOCKED_CLOSED nicht funktionieren wird.

2
ViT-Vetal-

Der LOCK_MODE_LOCKED_CLOSED verhindert heutzutage völlig, dass das Nav-Menü angezeigt wird, auch über das Hamburger-Menü (das möglicherweise unerwünscht ist). Folgendes hat für mich funktioniert: https://stackoverflow.com/a/52160351/377320

0
Martin Vysny

Das hat für mich funktioniert:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

Sie können die Schublade erweitern, indem Sie auf das Hamburger Symbol oder die Schaltfläche tippen, von der aus Sie auslösen müssen. Ein Wischen von links nach rechts wird jedoch nicht mehr ausgelöst.

0
Prakhar Gupta