Tôi đang sử dụng để hiển thị một vài đoạn, tôi cũng có TextView
trên số FragmentActivity
của mình. Tôi cần thay đổi văn bản trong TextView
tùy thuộc vào phân đoạn nào hiện được chọn trong ViewPager
. Vấn đề tôi gặp phải: ViewPager
có một số cơ chế lưu vào bộ nhớ đệm, nó tạo ra các mảnh trước khi chúng thực sự hiển thị cho người dùng, ví dụ khi tôi chọn trang thứ hai trong trang ViewPager
trên trang thứ ba cũng được tạo. Điều gì là nhiều hơn tôi không thể xác định bên trong mảnh là mảnh này có thể nhìn thấy ngay bây giờ hoặc nó chỉ được tạo ra bởi ViewPager
, nhưng không thực sự có thể nhìn thấy cho người dùng. Tôi đã tryed để sử dụng OnPageChangeListener
cho điều này, nhưng những thay đổi được thực hiện trong đó là không thể chấp nhận chậm đối với tôi (trang cuộn và sau đó tôi TextView
đã thay đổi)
Những gì tôi thực sự cần: tôi cần phải xác định đoạn hiện nay có thể nhìn thấy trong ViewPager
, bất kể từ số FragmentActivity
hoặc từ số Fragment
. Làm thế nào tôi có thể đạt được điều này?Xác định phân đoạn nào hiện có thể nhìn thấy trong ViewPager
Trả lời
ViewPager.OnPageChangeListener
là cách tiếp cận rõ ràng ở đây. Và như bạn đã nhận thấy, onPageSelected(int position)
không được gọi cho đến khi trang được căn giữa (nếu bạn đang từ từ cuộn trang bằng cách chạm và giữ).
Điều tôi thực sự cần: Tôi cần xác định phân đoạn nào hiện có thể nhìn thấy trong ViewPager, bất kể từ FragmentActivity hoặc từ Fragment. Làm thế nào tôi có thể đạt được điều này?
Trước tiên, bạn chưa xác định "hiện có thể nhìn thấy". Trong một ViewPager
, 2 trang đều có thể được nhìn thấy trong khi vuốt giữa chúng, vì vậy trang nào là "đang hiển thị" giữa swipe? Giả định của tôi là bạn sẽ xem xét bất kỳ trang nào là "hiển thị nhiều hơn" là "hiện có thể nhìn thấy".
Có nói rằng, tôi sẽ xem xét sử dụng onPageScrolled (int position, float positionOffset, int positionOffsetPixels)
. Có vẻ như positionOffset
có thể cung cấp cho bạn thông tin bạn cần. Tôi sẽ kiểm tra nó với một số báo cáo khai thác gỗ để xem dữ liệu nào trả về.
- 1. Đoạn trước có thể nhìn thấy dưới đoạn mới
- 2. Xác định các đỉnh có thể nhìn thấy trong OpenGL
- 3. ViewPager bên trong vấn đề phân đoạn
- 4. Android ViewPager với các trang trước và tiếp theo có thể nhìn thấy?
- 5. Phần có thể nhìn thấy có thể nhìn thấy của văn bản
- 6. Làm thế nào để xác định xem một ô bảng tính có thể nhìn thấy/được hiển thị trong VBA?
- 7. Sử dụng chế độ xem hoặc phân đoạn trong ViewPager
- 8. Android - Phát hiện bàn phím có thể nhìn thấy?
- 9. Thêm và xóa các phân đoạn động trong ViewPager
- 10. HorizontalScrollView có thể nhìn thấy trẻ em
- 11. có phân đoạn file * tìm thấy
- 12. Nội dung của một đoạn có thể nhìn thấy bên ngoài plugin máy chủ không?
- 13. Trục trặc có thể nhìn thấy Datepicker?
- 14. Xác định xem phao có phần phân đoạn không?
- 15. Có thể sắp xếp và phân đoạn, có thể phân đoạn không cập nhật khi DOM thực hiện?
- 16. Viewpager trong phân đoạn không được hiển thị (khôi phục) khi quay lại từ đoạn khác
- 17. Xem trước đoạn của khung nhìn trong ViewPager khi chạy lần đầu tiên
- 18. Phân vùng MySQL có thể nhìn thấy trong kế hoạch GIẢI THÍCH của một CHỌN ....?
- 19. C# UserControl Tài sản có thể nhìn thấy
- 20. ViewPager trong DialogFragment, IllegalStateException: Fragment không có một cái nhìn
- 21. Truy cập phương thức Phân đoạn từ Hoạt động ViewPager
- 22. Phân đoạn không gọi onSaveInstanceState khi vuốt ViewPager?
- 23. org.apache.lucene.index.IndexNotFoundException: không tìm thấy phân đoạn * nào trong org.apache.lucene.store.RAMDirectory
- 24. Xác định giai đoạn thực hiện Maven trong một plugin
- 25. Sàng phân đoạn của Atkin, có thể?
- 26. Dịch vụ Windows không thể nhìn thấy semaphore có tên
- 27. Phân đoạn URI hiện tại trong CodeIgniter
- 28. Cách xác định phân đoạn được khôi phục từ backstack
- 29. JavaScript có thể nhìn thấy trong Firebug, không thể tiếp cận trong mã
- 30. Android ViewPager đệm/lề giữa các đoạn trang