Ben takip ediyorum Google tarafından gezinme çekmecesi kılavuzu ve ben sekme ve hareketlerle bir Aktivite eklemek istiyorum.
Gezinme çekmecesini açmak için hareketi devre dışı bırakmak istiyorum, bunun nasıl yapılacağı hakkında bir fikriniz var mı?
Ben takip ediyorum Google tarafından gezinme çekmecesi kılavuzu ve ben sekme ve hareketlerle bir Aktivite eklemek istiyorum.
Gezinme çekmecesini açmak için hareketi devre dışı bırakmak istiyorum, bunun nasıl yapılacağı hakkında bir fikriniz var mı?
Yanıtlar:
Kullanmalısın:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Benim için çalıştı, çekmeceyi açmak için tokatlamak devre dışı bırakıldı.
mDrawerLayout
, şu şekilde ayarlayın:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
(API 21) ' i uygulamaya ve SlidingTabLayout
Nav'ımla çelişen özelliği kullanmaya çalışıyorum . çekmece kaydırma. Bu yüzden Nav'ı devre dışı bırakmayı tercih ederim. çekmece slayt ToolBar
kayma özelliği lehine .
kilitleme için şunları yapabilirsiniz:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
ve kilidini açmak için:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
SetDrawerLockMode () kullanırken yerçekimi değerini de ekleyin ;
Bunu yap :
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
Bu bir cazibe gibi çalışmalı
Devre dışı hızlıca kaydırmak, geçersiz kılma için onInterceptTouchEvent
ve onTouchEvent
üzerinde DrawerLayout
ve onlara sahip return false.
Kaydırmayı devre dışı bırakmanın cevabı doğrudur. Bence LOCK_MODE_LOCKED_CLOSED Uyum 24.x'te çalıştı, ancak işlevsellik daha yeni uyumluluk kütüphanelerinde değiştirildi ve LOCK_MODE_LOCKED_CLOSED artık hamburger menüsünü kullanarak bile gezinme menüsünün gösterilmesini tamamen engelliyor.
Aşağıdaki sınıf benim için çalışıyor (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)
}
}
Bu benim için çalışıyor
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});