2013-06-10 11 views

risposta

125

Questo ha funzionato per me:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 

Puoi espandere il cassetto toccando il pulsante Home e puoi utilizzare il gesto di scorrimento da destra a sinistra per chiuderlo. Tuttavia, il passaggio da sinistra a destra non viene più attivato.

+16

Per sbloccarlo utilizzare mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_UNLOCKED); –

+6

Questo non funziona nel mio caso, ottengo sempre un cassetto con il gesto di scorrimento anche se ho impostato il layout del cassetto con la soluzione di cui sopra. –

+0

Sto avendo lo stesso problema. –

18

Per setDrawerLockMode(), questo è nel codice, ma non sulle Android developer documentazione:

/** 
* 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

E questo ora appare su dev doc: http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html#LOCK_MODE_LOCKED_CLOSED – greg7gkb

1

apparire come ho trovato bug. Ad esempio, se impostato:

android:layout_gravity="right" 

o

android:layout_gravity="left" 

per il contenuto cassetto e utilizzare .setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) tutto andrà bene.

Ma nel caso in cui android:layout_gravity="left|center_vertical" o qualcosa di simile LOCK_MODE_LOCKED_CLOSED non funzionerà.

+1

Hai ragione. Il motivo è descritto qui da @ A - C https://stackoverflow.com/questions/18413116/why-i-cant-lock-drawerlayout-with-layout-gravity/18413276#18413276 – Tina