Bối cảnh: Tôi đã viết một vùng chứa tùy chỉnh có khả năng chứa ba đoạn. Tùy thuộc vào trạng thái của vùng chứa này chỉ có hai hoặc ba đoạn đó có thể nhìn thấy được. Để thông báo mảnh vỡ mà tầm nhìn của họ đã thay đổi tôi đã cố gắng ra hai lựa chọn:Cách tạm dừng/tiếp tục một đoạn
tôi gọi Fragment.setUserVisibleHint() phương pháp với giá trị tương ứng. Các mảnh vụn được lưu trữ vượt qua phương pháp này và phản ứng một cách thích hợp. Điều này làm việc ra.
Tôi gọi là FragmentTransaction.hide() và FragmentTransaction.show() các phương pháp để ẩn và hiển thị các đoạn. Các mảnh được lưu trữ đã vượt qua Fragment.onHiddenChanged() và phản ứng khi cần thiết. Điều này làm việc ra là tốt.
Vấn đề của tôi là tôi không hài lòng với một trong các tùy chọn này. Tôi muốn đặt phân đoạn vô hình thành trạng thái chuẩn bị tạm dừng trạng thái. Lợi thế của tùy chọn này là tôi giữ mã sạch sẽ và đơn giản, vì tôi không cần ghi đè bất kỳ phương thức đặc biệt nào (như setUserVisibleHint()
hoặc onHiddenChanged()
) và tôi có thể xử lý mọi thứ bên trong onPause()
và onResume()
đã được triển khai.
Câu hỏi: Cách thích hợp để đặt một mảnh vào trạng thái bị tạm dừng là gì và sau đó tiếp tục từ tiểu bang đó?
Cập nhật: Tôi cũng đã thử ra FragmentTransaction.detach()
. Đây không phải là một tùy chọn vì nó phá hủy chế độ xem, điều này không được phép trong trường hợp của tôi.
Bạn có tìm thấy giải pháp cho điều này không? Tôi có chính xác cùng một vấn đề. 'FragmentTransaction.hide()' không gọi 'onPause' gây ra một số hiệu ứng lạ trong trường hợp này ... – mixable
@mixable Sau khi một số nghiên cứu sâu hơn hóa ra, không thể đưa nó vào trạng thái tạm dừng mà không cần tách ra (loại bỏ) nó. –