5

trường hợp sử dụng của tôi:Ẩn/hiển thị thanh hành động theo ngữ cảnh theo chương trình

Tôi có một hoạt động với một ViewPager như yếu tố xem duy nhất của nó, thiết lập với ba Fragment s cho ba trang của nó (sử dụng một FragmentPagerAdapter). Một trong những mảnh này là ListFragment, trong khi hai đoạn còn lại là Fragment s chứa một số infographics.

Danh sách trong ListFragment cho phép các yếu tố "kiểm tra" và kiểm tra các yếu tố sẽ trả về thanh tác vụ theo ngữ cảnh, hiển thị danh sách các hành động có thể có trên các mục đã chọn/đã chọn.

Vấn đề của tôi:

Khi tôi chọn một vài mặt hàng danh sách, CAB xuất hiện. Nhưng khi tôi chuyển đổi các trang, CAB vẫn hiển thị, trình bày các hành động. Để làm cho vấn đề tồi tệ hơn, các ViewPager dường như đôi khi phá hủy quan điểm của các mảnh danh sách - do đó lựa chọn các hành động ném một ngoại lệ "java.lang.IllegalStateException: Content view not yet created".

Câu hỏi của tôi:

  1. Làm thế nào để tôi có được CAB biến mất khi người dùng di chuyển ra khỏi trang ListFragment?
  2. (tùy chọn) Làm cách nào để CAB xuất hiện trở lại khi số ListFragment quay lại và một số mục vẫn được chọn.

Trả lời

1

Trước tiên, bạn cần thêm ViewPager.OnPageChangeListener với ViewPager.OnPageChangeListener vào viewPager.

Trong phương thức onPageSelected gọi phương thức trong số ListFragment của bạn để loại bỏ CAB của bạn.

EDIT:

Để có được đoạn hoạt động hiện tại bạn có thể sử dụng nó thẻ. Thẻ có thể được computated với phương pháp này:

private static String makeFragmentName(int viewId, int index) { 
    return "android:switcher:" + viewId + ":" + index; 
} 

nơi viewId là id của ViewPager và chỉ số chỉ số tab (vị trí)

+0

Bạn sẽ truy cập vào ListFragment thích hợp từ ViewPager như thế nào? – Joshua

+1

Tôi đã chỉnh sửa câu trả lời để thêm thông tin về cách truy cập vào đoạn – david

+0

Làm thế nào để ViewPager.OnPageChangeListener có hai lần? Đó có phải là một lỗi đánh máy hoặc nó có nghĩa là có nghĩa là cái gì khác? – RightHandedMonkey

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