SwipeRefreshLayout + ViewPager、水平スクロールのみを制限しますか?
私はアプリに実装SwipeRefreshLayoutしViewPagerましたが、大きな問題があります。ページを切り替えるために左/右にスワイプするたびに、スクロールが非常に敏感です。少し下にスワイプすると、SwipeRefreshLayout更新もトリガーされます。 水平スワイプを開始する時間に制限を設定し、スワイプが終了するまで水平方向に強制します。つまり、指が水平方向に動いているときの垂直方向のスワイプをキャンセルしたいのです。 この問題はでのみ発生します。ViewPager下にスワイプしてSwipeRefreshLayout更新機能がトリガーされ(バーが表示されます)、指を水平方向に動かしても、垂直方向のスワイプしかできません。 ViewPagerクラスを拡張しようとしましたが、まったく機能していません。 public class CustomViewPager extends ViewPager { public CustomViewPager(Context ctx, AttributeSet attrs) { super(ctx, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean in = super.onInterceptTouchEvent(ev); if (in) { getParent().requestDisallowInterceptTouchEvent(true); this.requestDisallowInterceptTouchEvent(true); } return false; } } レイアウトxml: <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/viewTopic" android:layout_width="match_parent" android:layout_height="match_parent"> <com.myapp.listloader.foundation.CustomViewPager android:id="@+id/topicViewPager" android:layout_width="match_parent" android:layout_height="match_parent"/> </android.support.v4.widget.SwipeRefreshLayout> どんな助けでも感謝します、ありがとう