Ho seguito la guida del cassetto di navigazione di Google e vorrei aggiungerla a un'attività con schede e gesti.
Vorrei disabilitare il gesto di aprire il cassetto di navigazione, qualcuno ha idea di come farlo?
Ho seguito la guida del cassetto di navigazione di Google e vorrei aggiungerla a un'attività con schede e gesti.
Vorrei disabilitare il gesto di aprire il cassetto di navigazione, qualcuno ha idea di come farlo?
Risposte:
Dovresti usare:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Ha funzionato per me, il colpo per aprire il cassetto è stato disabilitato.
Se continua a non funzionare, controlla la risposta fornita qui .
mDrawerLayout
, impostalo come segue:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
(API 21) e utilizzare la SlidingTabLayout
funzione che ha, che è in conflitto con il mio Nav. scorrimento del cassetto. Quindi preferirei disabilitare il Nav. cassetto scorrevole a favore della ToolBar
funzione scorrevole.
per bloccare puoi fare questo:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
e per sbloccare:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
Aggiungi anche il valore di gravità quando usi setDrawerLockMode () ;
Fai questo :
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
Questo dovrebbe funzionare come un fascino
Per disabilitare strisciata, override onInterceptTouchEvent
e onTouchEvent
su DrawerLayout
e li hanno return false.
La risposta per disabilitare lo scorrimento è quella corretta. Penso che LOCK_MODE_LOCKED_CLOSED abbia funzionato in Compat 24.x, ma la funzionalità è stata cambiata nelle librerie compat più recenti e LOCK_MODE_LOCKED_CLOSED ora impedisce completamente la visualizzazione del menu di navigazione, anche usando il menu hamburger.
La seguente classe funziona per me (Kotlin):
class MyDrawerLayout(ctx: Context) : DrawerLayout(ctx) {
var isSwipeOpenEnabled: Boolean = true
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onInterceptTouchEvent(ev)
}
@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onTouchEvent(ev)
}
}
Questo funziona per me
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});