Я дотримуюся посібника з ящика навігації від Google, і хотів би додати його до діяльності із вкладками та жестами.
Я хотів би відключити жест, щоб відкрити навігаційний ящик, хтось має уявлення, як це зробити?
Я дотримуюся посібника з ящика навігації від Google, і хотів би додати його до діяльності із вкладками та жестами.
Я хотів би відключити жест, щоб відкрити навігаційний ящик, хтось має уявлення, як це зробити?
Відповіді:
Ви повинні використовувати:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Це працювало для мене, проведіть пальцем, щоб відкрити шухляду.
Якщо вона все ще не працює, перегляньте відповідь, надану тут .
mDrawerLayout
, встановіть це так:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
(API 21) і використовувати SlidingTabLayout
функцію, яку він має, яка суперечить моєму Nav. витягування ящика. Тому я б швидше відключив 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, але функціональність була змінена в новіших бібліотеках компат, і 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});