2013-06-10 5 views

Antwort

125

Das ist für mich gearbeitet:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 

Sie können die Schublade erweitern, indem Sie auf die Home-Taste tippen und die Wischgeste von rechts nach links verwenden, um sie zu schließen. Ein Streichen von links nach rechts wird jedoch nicht mehr ausgelöst.

+16

Zum Entriegeln es u verwenden mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_UNLOCKED); –

+6

Dies ist nicht in meinem Fall arbeiten, habe ich immer eine Schublade auf Swipe-Geste, auch wenn ich die Schublade Plan mit der obigen Lösung eingestellt. –

+0

Ich habe das gleiche Problem. –

18

Für setDrawerLockMode() ist dies im Code aber nicht auf dem 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; 
+0

Und das erscheint jetzt auf dev docs: http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html#LOCK_MODE_LOCKED_CLOSED – greg7gkb

1

schauen, wie ich Fehler gefunden. Zum Beispiel, wenn ein:

android:layout_gravity="right" 

oder

android:layout_gravity="left" 

für Schubladeninhalt und verwenden .setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) alles in Ordnung sein wird.

Aber in dem Fall, wenn android:layout_gravity="left|center_vertical" oder etwas ähnliches LOCK_MODE_LOCKED_CLOSED wird nicht funktionieren.

+1

Sie richtig sind. Der Grund ist hier gut beschrieben von @ A - C https://stackoverflow.com/questions/18413116/why-i-cant-lock-drawerlayout-with-layout-gravity/18413276#18413276 – Tina