質問: 現在タブが3つありそれぞれに対応したlistviewを表示する ということをしています。 tab1を押せばlistviewに1の内容を渡し2を押せばlistviewに2の内容を渡します。 タブをタップすることで画面を切り替える操作は完成しました。 次にスワイプによる画面切り替え動作を行いたいです。 しかしlistviewでは、 public boolean onTouchEvent(final MotionEvent event) は反応しないようです。 [http://yusuke-hata.hatenablog.com/entry/2014/12/05/234032] public boolean dispatchTouchEvent(final MotionEvent event) だと反応します。 しかしdispatchTouchEventだと詳細な動きを取得できません。 onFlingを使用して横方向スライドを検出するためにはどうすればよいでしょうか? [http://takeshiyako.blogspot.jp/2015/08/android-flick-input-event.html?m=1]
回答: タッチイベントは下記の順番で処理されます。 1-Activity#dispatchTouchEvent 2-Viewのタッチイベント処理 3-Activity#onTouchEventの順番で処理されます。 この処理の中でどこかがタッチイベントを消費した場合はそれ以降のタッチイベント処理には到達しません。 ListViewは2の段階で全てのタッチイベントを消費するので3で処理することはできません。