Tôi đang cố gắng triển khai Carousel vô hạn bằng cách sử dụng thành phần ViewPager. Tôi dựa trên cái được tạo bởi Antonyt nhưng có sự cố khi sử dụng ít hơn 4 chế độ xem. Khi xem đã có sẵn. Phải là một cách để lừa Viewpager để vẽ cùng một chế độ xem/trang ở những vị trí khác nhau.ViewPager Circular với ít hơn 4 lượt xem
Trả lời
Giải pháp là sử dụng cùng một chế độ xem con trong ViewPager. Và để làm điều đó mà không có cùng một đứa trẻ đã được chỉ định cho cha mẹ là sử dụng một ProxyView với cái nhìn thực sự bên trong. Mở rộng Fake View từ ViewGroup và ghi đè lên phương thức Draw sẽ thực hiện thủ thuật!
Tôi đã gặp sự cố tương tự, không thể tự tìm ra giải pháp. Nhưng tôi đoán nó là không thể làm bằng cách sử dụng chỉ 1-4 lượt xem. Vấn đề là tất cả các khung nhìn (cho 1-4 ảnh lặp lại) sẽ được khởi tạo cùng một lúc (hoặc ít nhất trong một khoảng thời gian rất ngắn) điều này ảnh hưởng đến quá trình tải ảnh vì tải trước chưa hoàn thành, vì vậy một trả về một cái nhìn hư hỏng. Bạn có thể xử lý một cái gì đó như thế này mặc dù.
1) ngay sau khi instantiation, sử dụng bộ xử lý với sự chậm trễ của 100-200ms để lướt qua xem setCurrentItem() một lần nữa và một lần nữa (khoảng 10 lần) trong hai hướng, cách này bản gốc 4 sẽ được ra khỏi phạm vi (nếu bạn đã tắt giới hạn trang màn hình, tôi hy vọng bạn có thể có được bản chất của mã của bạn) và sẽ được tạo từng cái một sau này.
2) Sử dụng đối tượng nhiều đệm,
1 hình ảnh-8 đệm
2 hình ảnh-4 bộ đệm cho mỗi
3 hình ảnh 2 bộ đệm cho mỗi ... một cái gì đó như thế này .
không phải là giải pháp lý tưởng mà cả hai đều hoạt động cho tôi nhưng. Tôi cũng muốn biết những gì bạn đã thử.
Hãy thử mẹo sau mà tôi đã sử dụng thành công để tạo một (giả) vô hạn ListView
.
Trong phương pháp của bộ điều hợp getCount()
, trả về Số nguyên.MAX_VALUE.
Sau đó, trong các bộ chuyển đổi instantiateItem()
hoặc destroyItem()
, Sử dụng position % datasource.size()
Thủ thuật này được lấy từ HERE.
Tại sao lại là downvote? Điều này làm việc khá tốt cho Danh sách ... –
Hi Vinay, tôi đã sử dụng giải pháp đó. Vấn đề là làm cho nó hoạt động với ít hơn 4 lượt xem. – Dayerman
Bạn có thể cần thực hiện một số công việc trong phương pháp OnDestoryItem để đính kèm lại mục đã được tách ra.
Tôi đã đăng giải pháp của mình ở đây, https://github.com/antonyt/InfiniteViewPager/issues/2
- 1. UITabBarController - hơn 20 lượt xem
- 2. Lucene.Net lớn hơn/ít hơn so với TermRangeQuery?
- 3. Nhận ít cột hơn với hibernate
- 4. Tạo chế độ xem của ViewPager với thao tác kéo ngắn hơn
- 5. ống ít hơn để Emacs
- 6. ít màu hơn Vertices
- 7. Số lượt xem trên mỗi lượt xem tối đa trên mỗi thùng
- 8. Apache Ant Ít hơn
- 9. ActionBarSherlock + ViewPager bộ nhớ đệm nhiều hơn sau đó chỉ cần trước/sau xem
- 10. viewpager + webview, cách dừng xem web tải
- 11. Junit: ít hơn xác nhận?
- 12. ClassNotFoundException Android với ViewPager
- 13. backbone.js - lượt xem trong lượt xem và quản lý sự kiện
- 14. Android - Hoạt động vs Lượt xem
- 15. Chức năng lọc cho ít hơn + F
- 16. Viewpager và FragmentPagerAdapter: Xóa trang xem
- 17. Có gì sai với truy vấn ít hơn ngày này?
- 18. Lượt xem trên thiết bị di động trở nên nhỏ hơn sau khi tải trang
- 19. Tạo BufferedImage sử dụng RAM ít hơn?
- 20. La bàn và SASS hoặc Ít hơn và?
- 21. Lượt xem dựa trên vai trò Django?
- 22. Nhiều lượt xem OnTouch Sự kiện
- 23. TSQL khóa ngoại trên lượt xem?
- 24. Số lượt xem vật lý của PostgreSQL
- 25. Cuộn ngang Xem bên trong ViewPager
- 26. jQTouch và Backbone.js Định tuyến/Lượt xem
- 27. Sử dụng SlidingPaneLayout của Android với ViewPager
- 28. Sử dụng bộ điều hợp mảng có nhiều lượt xem hơn trong hàng trong listview
- 29. Android: ViewFlipper hoặc ViewPager - Lựa chọn nào tốt hơn?
- 30. Sử dụng ít hơn như gdb pager
Xin chào Shakti, tôi không nhận được giải pháp của bạn. Bạn có thể chia sẻ mã của bạn không? – Dayerman
Việc triển khai hóa ra là phức tạp đối với tôi với mã phân tán. Ý tưởng cơ bản là làm cho chúng khởi tạo từng cái một thay vì tất cả cùng một lúc. Hãy thử somehting để làm cho điều đó xảy ra. Trong trường hợp bộ đệm, bạn phải tạo nhiều lần xem hình ảnh với cùng một nội dung. – Shakti
Vấn đề là tôi cần phải sử dụng cùng một chế độ xem ở những nơi khác nhau, vì vậy tôi không thể khởi tạo nhiều lần như sẽ là một trường hợp khác. Vì vậy, là một vấn đề của một đứa trẻ đã được đính kèm với một phụ huynh. Giải pháp có thể thu hút lượt xem ở 2 nơi. Đó là đi sâu hơn trong cấu trúc của ViewPager. – Dayerman