Saturday, August 2, 2014

NavigationDrawerのOpenをジェスチャーでは開かないないようにする

NavigationDrawerのOpenがViewPagerのスワイプと被ってるので、NavigationDrawerのジェスチャー処理を無効にしようと思ったのですが、最初はやりかたがわからなくて、DrawerLayoutクラスを継承してOnTouch辺りを強制的にぐりぐりしようかとおもったけど、もっと簡単にやる方法があったので助かった。

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

DrawerLayoutクラスにsetDrawerLockModeでDrawerLayout.LOCK_MODE_LOCKED_CLOSEDを設定すると期待していた動きになります。

ちなみに、このフラグは他にも

デフォルトの値、ジェスチャーでOpen,Closeする。
LOCK_MODE_UNLOCKED

ジェスチャーによってOpenしない。
LOCK_MODE_LOCKED_CLOSED

ジェスチャーでOpenしない上、クローズもしない。上のやつだと外部タップで自動で閉じる。
LOCK_MODE_LOCKED_OPEN

ということらしいです。

やっぱり、NavigationDrawerのジェスチャーはOFFにしていたほうが気持ちよく操作できますね。



No comments:

Post a Comment