Tôi có một người xem và trong một trong các đoạn tôi có hai đoạn riêng biệt chứa một recyclerview dọc và ngang tương ứng.Vô hiệu hóa phân trang ViewPager khi con recyclerview cuộn đến mục cuối
Khi tôi cuộn recyclerview ngang đến mục cuối cùng và cố gắng vuốt xa hơn, chế độ xem cuộn sẽ cuộn đến trang tiếp theo. Tôi không muốn điều này xảy ra. Tôi muốn vô hiệu hóa phân trang của người xem khi tôi cố gắng overscroll recyclerview ngang.
Tuy nhiên, tôi không muốn tắt phân trang của người xem khi tôi vuốt bất kỳ nơi nào khác. Ví dụ: Nếu tôi đã vuốt trên recyclerview theo chiều dọc hoặc bất kỳ khoảng trống nào trong đoạn gốc, nó vẫn sẽ khiến người xem thay đổi trang.
Tôi đọc in this SO question, cách tắt phân trang của người xem. Ngoài ra this SO question là tương tự trong đó có một người xem trẻ em, tuy nhiên tôi đã không có thành công cố gắng để tái tạo với một recyclerview ngang.
Dưới đây là một số cấu trúc:
Các ViewPager tùy chỉnh cho phép tôi để vô hiệu hóa phân trang (lấy nó từ đầu tiên SO liên kết ở trên):
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
} }
Đối với recyclerview ngang tôi đặt một ontouchlistener (tương tự như thứ hai SO liên kết ở trên):
horizontalRecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:
customViewPager.setPagingEnabled(false);
break;
case MotionEvent.ACTION_UP:
customViewPager.setPagingEnabled(true);
break;
}
return false;
}
});
quan sát thêm: tôi nhận thấy rằng đôi khi nếu tôi dài bấm recyclerview ngang trước khi tôi swipe nó sẽ không đi đến trang tiếp theo của viewpager. Tuy nhiên, nếu tôi vuốt nhanh, chế độ xem sẽ chuyển sang trang tiếp theo.
Có ai biết cách thích hợp để thực hiện việc này không?
Mọi trợ giúp đều được đánh giá cao.
bất kỳ giải pháp nào được tìm thấy. Tôi đang tìm kiếm cùng một –