Как отключить распознавание жестов для DrawerLayout? (проведите по экрану слева направо) и принимайте только строчный жест (справа налево) и откройте ящик только с помощью кнопки "домой"?
Отключить прослушиватель жестов в DrawerLayout
Ответ 1
Это сработало для меня:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Вы можете развернуть ящик, нажав кнопку "Домой", и можете использовать жестом салфетки справа налево, чтобы отменить его. Однако прокрутка влево-вправо больше не запускается.
Ответ 2
Для setDrawerLockMode()
это находится в коде, но не в разработчике Android docs:
/**
* The drawer is unlocked.
*/
public static final int LOCK_MODE_UNLOCKED = 0;
/**
* The drawer is locked closed. The user may not open it, though
* the app may open it programmatically.
*/
public static final int LOCK_MODE_LOCKED_CLOSED = 1;
/**
* The drawer is locked open. The user may not close it, though the app
* may close it programmatically.
*/
public static final int LOCK_MODE_LOCKED_OPEN = 2;
Ответ 3
Чтобы отключить распознавание жестов DrawerLayout, используйте:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
Затем, чтобы включить прокрутку справа налево, проверьте этот ресурс: http://android-journey.blogspot.com/2010/01/android-gestures.html
Ответ 4
Похоже, я нашел ошибку. Например, если установлено:
android:layout_gravity="right"
или
android:layout_gravity="left"
для содержимого ящика и использования .setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
все будет в порядке.
Но если android:layout_gravity="left|center_vertical"
или что-то вроде этого LOCK_MODE_LOCKED_CLOSED
не будет работать.