Tôi đã triển khai SwipeRefreshLayout
và ViewPager
trong ứng dụng của mình nhưng có một rắc rối lớn: bất cứ khi nào tôi vuốt sang trái / phải để chuyển đổi giữa các trang, thao tác cuộn quá nhạy. Một chút vuốt xuống cũng sẽ kích hoạt SwipeRefreshLayout
làm mới.
Tôi muốn đặt giới hạn cho thời điểm bắt đầu vuốt ngang, sau đó chỉ ép ngang cho đến khi hết vuốt. Nói cách khác, tôi muốn hủy thao tác xoay dọc khi ngón tay di chuyển theo chiều ngang.
Sự cố này chỉ xảy ra trên ViewPager
, nếu tôi vuốt xuống và SwipeRefreshLayout
chức năng làm mới được kích hoạt (thanh được hiển thị) và sau đó tôi di chuyển ngón tay theo chiều ngang, nó vẫn chỉ cho phép vuốt dọc.
Tôi đã cố gắng mở rộng ViewPager
lớp học nhưng nó không hoạt động chút nào:
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;
}
}
Bố cục 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>
Bất kỳ trợ giúp sẽ được đánh giá cao, cảm ơn
SwipeRefreshLayout
?