Tôi đang sử dụng ViewPager chứa 3 đoạn, mỗi đoạn sẽ tải một danh sách. Vấn đề là khi ứng dụng chạy lần đầu tiên và tôi vuốt đến đoạn tiếp theo, đoạn này cần đôi khi để tải (khoảng 2 giây) trước khi hiển thị chế độ xem của nó. Đây là một hành vi rất kỳ lạ. Tất cả những gì tôi muốn là một khi ứng dụng đã bắt đầu, tất cả các mảnh trong ViewPager sẽ sẵn sàng cho người dùng vì vậy khi họ vuốt qua các đoạn, không có thời gian chờ đợi. Làm thế nào tôi có thể làm điều đó?Xem trước đoạn của khung nhìn trong ViewPager khi chạy lần đầu tiên
Trả lời
Chỉ cần gọi setOffscreenPageLimit()
trong onCreate() (sau khi khởi tạo ViewPager). OffscreenPageLimit đặt số trang cần được giữ lại ở hai bên của trang hiện tại (trong trường hợp của bạn là 2). Với tất cả các mảnh vỡ của bạn sẽ được nhanh chóng.
(Một khác (rất khuyến khích) khả năng là để tăng hiệu suất của danh sách hoặc listadapters của bạn, bởi vì một thời gian tải của 2 giây không có âm thanh tốt)
Trên thực tế, đặt nó thành '2' sẽ đảm bảo tất cả 3 đoạn được lưu giữ xung quanh. Giá trị đặt số lượng trang sẽ được giữ lại thành ** ở hai bên của trang hiện tại **, không phải tổng số trang. –
Vâng, tôi biết. Nhưng bạn cũng có thể đặt giới hạn thành '100' và nó vẫn hoạt động ;-) Đây chỉ là một ví dụ, tất nhiên anh ta có thể đặt giới hạn thành' 2' nếu anh ta muốn. – Namenlos
Trong trường hợp đó, tại sao nói * "trong trường hợp của bạn ** 3 **" * trong câu trả lời của bạn? Điều đó không đúng, và nó báo hiệu cho tôi rằng bạn không biết, đó là lý do tại sao tôi ban đầu thêm một bình luận để chỉ ra điều đó. –
- 1. lỗi khi chạy cpan lần đầu tiên
- 2. Đoạn trước có thể nhìn thấy dưới đoạn mới
- 3. presentModalViewController trong viewDidLoad khi khởi chạy lần đầu tiên
- 4. Lỗi phân đoạn trước dòng mã đầu tiên
- 5. Phát hiện lần chạy đầu tiên của ứng dụng
- 6. UIBarButtonItem với chế độ xem tùy chỉnh không hiển thị sau khi xem lần đầu tiên
- 7. Đầu ra JSON của một khung nhìn trong Grails
- 8. EF6/Code Đầu tiên: Siêu chậm trong lần truy vấn đầu tiên, nhưng chỉ trong Debug
- 9. Cách khởi chạy hoạt động chỉ một lần khi ứng dụng được mở lần đầu tiên?
- 10. Hiển thị màn hình khi khởi chạy lần đầu tiên chỉ trong iOS
- 11. Sử dụng chế độ xem hoặc phân đoạn trong ViewPager
- 12. Làm cách nào để hiển thị chế độ xem trên lần khởi chạy đầu tiên?
- 13. ViewPager bên trong vấn đề phân đoạn
- 14. Xác định phân đoạn nào hiện có thể nhìn thấy trong ViewPager
- 15. Làm cách nào để kiểm tra xem chương trình có đang chạy lần đầu tiên không?
- 16. Sử dụng một Fragment trong ViewPager nhiều lần
- 17. Tại sao hoạt ảnh iOS chậm lại trong lần chạy đầu tiên?
- 18. UIScrollView nhảy xuống khi lần đầu tiên chạm vào
- 19. Chọn ngày đầu tiên của tháng trước trong (DB2) SQL
- 20. Học Oracle lần đầu tiên
- 21. Trong ViewPager, khi trượt đến tab thứ 3, đoạn con trong tab1 biến mất
- 22. Cách phân đoạn thứ hai chồng lên nhau trên đoạn đầu tiên trong khi transistion mảnh
- 23. Tải trước và chạy jQuery/javascript trước khi xem trang
- 24. Khi chạy thử nghiệm đăng nhập Behat thông qua PhantomJS, nó chỉ chạy trên lần chạy đầu tiên
- 25. Java.lang.NoClassDefFoundError sau khi sử dụng maven lần đầu tiên?
- 26. Sự khác biệt giữa khung nhìn và khung giới hạn của khung nhìn + iPhone
- 27. Tìm lần xuất hiện đầu tiên khác 0 trong khung dữ liệu
- 28. Ứng dụngDidFinishLaunching: được gọi khi ứng dụng được cập nhật và khởi chạy lần đầu tiên?
- 29. Android ViewPager với các trang trước và tiếp theo có thể nhìn thấy?
- 30. Các bước đầu tiên sau khi kích hoạt ECB lần đầu tiên
Bạn đang sử dụng FragmentPageAdapter hoặc FragmentStatePageAdapter? – Delyan
Những gì bạn có thể xem xét làm là bộ nhớ đệm bộ điều hợp danh sách mảnh trong hoạt động (hoặc trong máy nhắn tin). Điều đó sẽ ngăn không cho các adapter được tải lại trên mỗi thay đổi của trang. – AedonEtLIRA
@Delyan tôi sử dụng FragmentPagerAdapter –