今や重なりあったアクション付きのUIが流行りとなり, 当然「タッチイベント」も重なり合ってくるわけでのメモ.
andevcon_mastering-the-android-touch-system.pdf
「親から子(背面から前面)に伝わっていく」ので, activity → view.
Android のタッチイベントを理解する(その1) - Unmotivated
なので, 早めに捉えると範囲が広く, 遅めに捉えると限定的で実装手間も少なくできる.
Android: Difference between onInterceptTouchEvent and dispatchTouchEvent? - Stack Overflow
親で伝搬を止める.
... @Override public boolean onInterceptTouchEvent(MotionEvent event) { boolean response = super.onInterceptTouchEvent(event); float x = event.getX(); switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: mTouchX = x; break; case MotionEvent.ACTION_MOVE: float dX = Math.abs(x - mTouchX); if (dX > minSwipeDistance) return true; break; } return response; } ...
子から伝搬を止めるのをやめさせる.
... findViewById(R.id.button) .getParent() .requestDisqllowInterceptTouchEvent(true); ...
ほとんどのユーザからのイベントは重なっていることを実感するなど.
Correctly detecting a swipe on a GridView placed inside a ViewPager in Android - Stack Overflow
関連ワード: Android・ライブラリ・開発・android-touch-system・touchevent