基本的に、フリングをキャプチャしてタブを変更するカスタムTabHostがあります。dispatchTouchEvent
問題は、ViewPager内部にタブがあることです。
何が起こるかというと、TabHostが からフリングをキャプチャしViewPagerてタブを変更することです。
がタッチイベントを処理したことを確認して回避しようとしましたsuper.dispatchTouchEventが、明らかに、このスーパーコールは常に true を返します。
これが私の中で使ってみたコードですTabHost:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
boolean handled = super.dispatchTouchEvent(ev);
if(!handled) // This is always true... why?
return mGestureDetector.onTouchEvent(ev);
return handled;
}
これを機能させるための回避策はありますか?
ViewPager がイベントを処理し、タブを変更しないことを検出するにはどうすればよいですか?
ありがとう!