Khi phát triển dự án đôi khi chung ta sẽ gặp các yêu cầu như trên, tạo 1 danh sánh lặp lại các item theo 1 vòng lặp.
Dưới đây sẽ là cách tạo 1 chức năng như vậy.
- Tạo InfinityAdapter.kt adapter này sẽ tăng gấp đôi số 1 item mục đích để tạo ra vòng lặp đầu và đuôi của danh sách.
2. Tạo CircularScrollListener.kt xử lý vòng lặp bằng cách kế thừa sự kiện scroll
Ở đây sẽ có 3 trường hợp:
- Lần đâu init sẽ scroll đến item ở giữa danh sách
- Khi scroll tiếp từ item cuối cùng sẽ scroll về item đầu tiền.
- Khi sử dụng hàm scrollToPosition() sẽ tính toán vị trí để scroll đến đúng item chỉ định
3. Demo setup recyclerview kết hợp sử dụng PagerSnap tạo hiệu ứng cuộn từng item.