私はGoogleのナビゲーションドロワーガイドに従っていますが、タブとジェスチャーを使用してアクティビティに追加したいと思います。
ナビゲーションドロワーを開くためのジェスチャーを無効にしたいのですが、これを行う方法を誰かが知っていますか?
私はGoogleのナビゲーションドロワーガイドに従っていますが、タブとジェスチャーを使用してアクティビティに追加したいと思います。
ナビゲーションドロワーを開くためのジェスチャーを無効にしたいのですが、これを行う方法を誰かが知っていますか?
回答:
あなたは使うべきです:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
それは私のために働いた、引き出しを開くためのスワイプは無効にされた。
mDrawerLayout
次のように、それを設定するmDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
(API 21)を実装SlidingTabLayout
して、Navと競合するその機能を使用しようとしているので、興味があります。引き出しスワイプ。だから私はむしろナビを無効にしたいと思います。ToolBar
スライド機能を採用した引き出しスライド。
ロックするためにこれを行うことができます:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
そしてロック解除のために:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
setDrawerLockMode()を使用する場合は、重力値も追加してください。
これを行う :
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
これは魅力のように機能するはずです
スワイプを無効にするには、オーバーライドonInterceptTouchEvent
してonTouchEvent
オンにしDrawerLayout
、falseを返すようにします。
スワイプを無効にする答えは正しいものです。LOCK_MODE_LOCKED_CLOSEDはCompat 24.xで機能したと思いますが、新しいcompatライブラリでは機能が変更されており、LOCK_MODE_LOCKED_CLOSEDにより、ハンバーガーメニューを使用してもナビゲーションメニューが完全に表示されなくなります。
次のクラスは私(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)
}
}
これは私のために働く
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});