отключить свайп жест, который открывает панель навигации в Android
Я навигационный ящик руководство по Google и я хотел бы добавить его в действие с вкладками и жестами.
Я хотел бы отключить жест, чтобы открыть навигационный ящик, кто-нибудь знает, как это сделать?
5 ответов:
вы должны использовать:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
он работает со мной, салфетки, чтобы открыть Ящик был отключен.
если он все еще не будет работать, проверьте ответ, предоставленный здесь.
для блокировки вы можете сделать это:
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
onDrawerLayout
и пусть они вернут false.
ответ на отключение считывания является правильным. Я думаю, что LOCK_MODE_LOCKED_CLOSED работал в Compat 24.x, но функциональность была изменена в новых библиотеках compat и LOCK_MODE_LOCKED_CLOSED теперь полностью предотвращает отображение меню навигации, даже с помощью меню гамбургера.
следующий класс работает для меня (Котлин):
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) } }