我在LinearLayout中有一個webview和ViewPager。Android:viewpager觸摸事件不起作用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/webview_wrapper"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<android.support.v4.view.ViewPager
android:id="@+id/slide_page"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#696969"
android:focusable="true"
android:focusableInTouchMode="true"
android:visibility="gone" />
雖然我設置OnTouchListener雙方的WebView和ViewPager。 我嘗試在webview上開始拖動,並在拖動時將MotionEvent傳遞給viewPager。
我的代碼如下。
WebView mainView = tab.getWebView();
mainView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent e) {
Log.w("LOGTAG", "onTouch");
switch (e.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
Log.w("LOGTAG", "ACTION_UP");
break;
case MotionEvent.ACTION_MOVE:
Log.w("LOGTAG", "ACTION_MOVE");
Test(...);
mPager.dispatchTouchEvent(e);
break;
case MotionEvent.ACTION_UP:
Log.w("LOGTAG", "ACTION_UP");
break;
}
return false;
}
});
private void Test(...) {
FrameLayout wrapper =
(FrameLayout) container.findViewById(R.id.webview_wrapper);
mPager = (ViewPager)container.findViewById(R.id.slide_page);
...
wrapper.setVisibility(View.GONE);
mPager.setVisibility(View.VISIBLE);
mPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent e) {
Log.w("LOGTAG", "mPager.onTouch");
switch (e.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
Log.w("LOGTAG", "mPager.ACTION_DOWN");
break;
case MotionEvent.ACTION_MOVE:
Log.w("LOGTAG", "mPager.ACTION_MOVE");
break;
case MotionEvent.ACTION_UP:
Log.w("LOGTAG", "mPager.ACTION_UP");
break;
}
return false;
}
});
}
這是我的日誌:
...
7月8日至6日:09:16.321:W /(26460):mPager.dispatchTouchEvent(E)=真
08-06 07:09:16.321:W /(26460):onTouch
08-06 07:09:16.321:W /(26460):ACTION_MOVE
08-06 07:09 :16.321:W /(26460):mPager.onTouch
7月8日至六日:09:16.321:W /(26460):mPager.ACTION_MOVE
...
ViewPager onTouchListener檢測MotionEvent以及,但viewpager沒有移動。
任何幫助將不勝感激。