DrawerLayoutのジェスチャ認識を無効にするにはどうすればよいですか? (左から右にスワイプ)、閉じるジェスチャ(右から左)のみを受け入れ、ホームボタンだけで引き出しを開きますか?
これは私のために働いた:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
ホームボタンをタップして引き出しを展開し、右から左へのスワイプジェスチャーを使用して閉じることができます。ただし、左から右へのスワイプはトリガーされなくなりました。
setDrawerLockMode()
の場合、これはコード内にありますが、 Android開発者 ドキュメントにはありません:
/**
* 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;
DrawerLayoutジェスチャー認識を無効にするには:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
次に、右から左へのスワイプを有効にするには、次のリソースを確認します。 http://Android-journey.blogspot.com/2010/01/Android-gestures.html
バグを見つけたようです。たとえば、設定されている場合:
_Android:layout_gravity="right"
_
または
_Android:layout_gravity="left"
_
引き出しのコンテンツと.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
を使用するには、すべて問題ありません。
ただし、_Android:layout_gravity="left|center_vertical"
_またはそのようなものが_LOCK_MODE_LOCKED_CLOSED
_で動作しない場合。
これは私のために働いた:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
トリガーするハンバーガーアイコンまたはボタンをタップすると、引き出しを展開できます。ただし、左から右へのスワイプはトリガーされなくなりました。
LOCK_MODE_LOCKED_CLOSED
最近では、ハンバーガーメニュー(不要な場合もあります)を使用しても、ナビゲーションメニューが表示されなくなります。次は私のために働いた: https://stackoverflow.com/a/52160351/37732