Как я могу отключить открытие ящика меню одним пальцем (проведите пальцем слева направо) для DrawerLayout, но разрешить открытие ящика меню двумя пальцами?
Проведите одним пальцем, чтобы не открывать меню ящика, а дочерние представления, чтобы иметь возможность обрабатывать сенсорные события. Только функция открытия меню должна быть запрещена для смахивания одним пальцем.
Обновление: я прочитал эту очень полезную тему: (Android : разница между onInterceptTouchEvent и dispatchTouchEvent?).
Поэтому я решил заменить метод onInterceptTouchEventpublic boolean onInterceptTouchEvent(MotionEvent arg) {
if (arg.getPointerCount() < 2 && !this.isDrawerOpen(this.listView)) {
return true;
} else {
return super.onInterceptTouchEvent(arg);
}
}
Однако очевидно, что он не отправляет события касания в дочерние представления. Я думаю, что мне нужно использовать LOCK_MODE_LOCKED_CLOSED
, чтобы управлять включением/отключением ящика. Я опубликую это решение здесь позже.