Come disabilitare il riconoscimento di gesti per DrawerLayout? (scorrere da sinistra a destra) e accettare solo il gesto di chiusura (da destra a sinistra) e aprire il cassetto con il tasto home?Disabilita listener di gesti su DrawerLayout
risposta
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.
Per disabilitare l'utilizzo di riconoscimento dei gesti DrawerLayout:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
Poi, per consentire il diritto di colpo a sinistra, controlla questa risorsa: http://android-journey.blogspot.com/2010/01/android-gestures.html
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;
E questo ora appare su dev doc: http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html#LOCK_MODE_LOCKED_CLOSED – greg7gkb
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à.
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
- 1. DrawerLayout modifica la sensibilità?
- 2. I gesti non funzionano quando si utilizza DrawerLayout nell'app per Android
- 3. Come fare gesti di pizzicamento su iPhone?
- 4. Riconoscimento simultaneo dei gesti per gesti specifici
- 5. Scorri verso sinistra i gesti su UITextField
- 6. DrawerLayout con Google Maps
- 7. DrawerLayout con Admob annuncio
- 8. Rilevamento dei gesti di scorrimento su UITableViewCell all'interno di UIScrollView
- 9. Ascolto di gesti su un widget di un'applicazione
- 10. Disabilita il riutilizzo delle celle su UICollectionView
- 11. Impossibile risolvere simbolo DrawerLayout
- 12. Come disabilitare DrawerLayout Shadow
- 13. Componente Android DrawerLayout
- 14. Android su cassetto Listener chiuso
- 15. Impostazione del listener di offset su CollapsingToolbarLayout
- 16. Imposta Listener di trascinamento su SpannableString
- 17. Disabilita registrazione su AngularJS
- 18. Disabilita hover su Highcharts
- 19. Problemi con il rilevamento di gesti su ListView
- 20. Android: rilevare gesti fling
- 21. Gesti e catena di risponditori
- 22. Entity valid listener listener
- 23. Frammenti sovrapposti con DrawerLayout/NavigationView
- 24. Cassetto di navigazione DrawerLayout non visualizzato
- 25. lunetta Gesti con Android
- 26. Perdita di ricognitori di gesti in UIPopoverController
- 27. Riconoscimento di gesti swipe all'interno di UIWebView
- 28. Analisi dei gesti Kinect
- 29. ListView all'interno di ScrollView con DrawerLayout
- 30. Impossibile mettere DrawerLayout in StatusBar
Per sbloccarlo utilizzare mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_UNLOCKED); –
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. –
Sto avendo lo stesso problema. –