Я следовал руководству по навигационному ящику от 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);
Это должно работать как шарм
Чтобы отключить Swiping, переопределение onInterceptTouchEvent
и onTouchEvent
на DrawerLayout
и иметь их возвращают ложь.
Ответ на отключение смахивания является правильным. Я думаю, что 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)
}
}
Это работает для меня
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});