Tôi đang làm việc với RecyclerView và LinearLayoutManager tương ứng. Tôi đã thêm một số tính năng cuộn tùy chỉnh cho một phần ứng dụng của mình, nơi tôi sẽ dịch đối tượng tiêu đề tùy chỉnh cùng với cuộn của RecyclerView được mô hình hóa sau dự án này: https://github.com/boxme/ParallaxHeaderViewPager (sử dụng ListView thay vì RecyclerView).RecyclerView LinearLayoutManager computeVerticalScrollOffset() không trả về giá trị đúng
Tôi đã gặp sự cố lạ. Nó sẽ di chuyển tốt trong một thời gian nhưng sau đó nó sẽ nhảy một vài trăm điểm ảnh. Tôi đã thêm các câu lệnh log để xem offset được tính toán bởi LinearLayoutManager.computeVerticalScrollOffset() khi tôi cuộn đủ chắc chắn, độ lệch được nhảy ngẫu nhiên từ 320 đến 1200, sau đó nó sẽ tiếp tục tính toán bù đắp một cách thích hợp từ thời điểm đó.
Xem câu trả lời của tôi bên dưới về cách tôi giải quyết vấn đề này!
Thay vì làm điều đó, bạn có thể ghi đè 'computeVerticalScrollOffset',' extent' và 'range' để có giải pháp rẻ hơn và phù hợp hơn. – yigit
Đó là một ý tưởng tuyệt vời! Tôi đã có một chút cảnh giác về việc ghi đè các phương thức RecyclerView và LayoutManager vì các lớp vẫn còn tương đối mới và có thể thay đổi đáng kể trong tương lai. Tôi đồng ý giải pháp của tôi là ở phía bên hackier nhưng ít nhất nó vẫn hoạt động nếu lớp thay đổi trong tương lai :) – rakoonise
Những phương pháp đó là gương từ View nên rất rất khó có thể thay đổi. Ngoài ra, khi chúng tôi thay đổi phương pháp công khai, chúng tôi cố gắng làm cho nó tương thích ngược nếu có thể – yigit