5

Gần đây tôi đã chuyển đổi ứng dụng của mình từ việc sử dụng Activites và TabHost sang sử dụng Fragments và ViewPager từ Thư viện Android Compat cho API v4 Tôi đã có thể khắc phục/giải quyết hầu hết các sự cố nhưng không thể giữ lại hành vi trước đó với lọc văn bản trong ListViews bằng cách sử dụng phương pháp setTextFilterEnabled.Danh sách lọcView là một phần của một ViewPager Fragment

My ViewPagerAdapter chứa các phân đoạn mà mỗi phần có ListView. Khi người dùng vuốt qua ViewPager, tôi muốn ListView của Fragment hiện đang hoạt động để lọc văn bản khi người dùng nhập, giống như tôi có thể thực hiện với mô hình TabHost-Activity. Hiện tại, có vẻ như ListView của Fragment đầu tiên sẽ phản hồi chính xác, nhưng nếu tôi vuốt sang Fragment tiếp theo và cố gắng lọc ListView của nó thì việc lọc vẫn sẽ áp dụng cho lớp đầu tiên. Nếu tôi vuốt qua hai đầu tiên và sau đó lọc, kết quả không xác định. Fragment hiện đang hoạt động sẽ không bao giờ áp dụng bộ lọc. Đôi khi một mảnh lân cận sẽ, đôi khi nó sẽ không.

Tôi đã cố gắng khắc phục điều này bằng cách thêm các cuộc gọi lại tùy chỉnh cho phép tôi theo dõi xem Phân đoạn nào hiện có thể nhìn thấy và được ẩn. Khi một mảnh trở thành hiển thị dưới dạng Phân đoạn chính của ViewPager, tôi đặt setTextFilterEnabled trên ListView của nó thành true và đặt tất cả các phần khác thành false. Điều này dường như không giúp gì cả (tôi đã xác minh rằng tôi đã chuyển đổi cờ chính xác cho đúng Phân đoạn).

Tôi nghi ngờ điều này cần một số loại tích hợp sâu hơn với ViewPager, nhưng tôi không thể thực sự tìm ra những gì tôi cần để kết nối. Bất kỳ ý tưởng về cách tôi có thể thực hiện công việc này? Tôi rất vui khi muck với mã ACL nếu cần thiết.

+0

nó sẽ giúp bạn nếu bạn có thể đăng đoạn mã có liên quan về những gì bạn đã làm trước đây và những gì bạn làm bây giờ. –

Trả lời

0

Bạn có thể triển khai phương pháp onPageSelected mở rộng OnPageChangeListener. Có lẽ bạn đã làm điều này. Từ đó bạn có thể thiết lập bộ điều hợp cho ListView hiện tại hoặc requery cursorAdapter của bạn nếu đó là trường hợp. Lưu ý rằng Bộ điều hợp được sử dụng phải triển khai giao diện Có thể lọc.

Các vấn đề liên quan