4

水平方向のフリングをインターセプトするためGestureDetectorにが必要なインスタンスがあります。ActivityこのアクティビティにはDrawerLayout.

私が抱えている問題は、DrawerLayoutすべてのタッチイベントを傍受して、 requestDisallowInterceptTouchEvents. アクティビティでも、その呼び出しをトリガーするために触れることができないようです。

Drawer が閉じているときは端からのスワイプを処理し、開いているときはどこからでもスワイプできるようにしたいと思います。しかし、引き出しが閉じているときに、他の場所でタッチイベントを傍受できるようにするために、アクティビティが必要です。

4

2 に答える 2

0

フラグを使用できます。DrawerListener にはメソッドonDrawerSlideがあります。これは、引き出しの位置が変更されたときに呼び出されます。つまり、引き出しが開いたり閉じたりするために実行されています。このメソッドで、ドロワーが実行中であることを示すフラグを設定できます。次に、OnGestureListener のonFlingメソッドで、フラグをチェックしてドロワーが実行されているかどうかを表示します。実行されていない場合は、onFling メソッドで好きなことを行うことができます。実行されていない場合は、何もしないでください。

役立つことを願っています

http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.DrawerListener.html#onDrawerSlide(android.view.View, float)

于 2013-07-10T15:28:27.670 に答える