2012-01-02 9 views
7

Tôi có ứng dụng tiêu đề đoạn và nội dung đoạn trên màn hình. Khi người dùng nhấp vào mục trong phần tiêu đề, đoạn được tạo ra và chèn vào một khung và tiêu đề được chọn sẽ được tô sáng trong phần tiêu đề.Cách khôi phục trạng thái xem phân đoạn Android

Giao dịch được thực hiện với fragment.addToBackStack(), vì vậy khi người dùng nhấp vào khóa BACK, đoạn trước đó sẽ được khôi phục và chèn vào khung.

Giải pháp tốt nhất để khôi phục trạng thái xem khi trình quản lý giao dịch khôi phục các phân đoạn là gì?

Vấn đề là tôi nên làm nổi bật tên mảnh trước đó trong phần tiêu đề và tôi nên biết mảnh đó là gì. Tôi đã giải quyết nó bằng cách lưu trữ trạng thái xem trong ngăn xếp của chính mình: khi đoạn được tạo và khôi phục về việc thay đổi backstack giao dịch bằng cách sử dụng trình lắng nghe trình quản lý giao dịch.

Nhưng điều này dường như không phải là giải pháp đúng.

Trả lời

1

Trước câu trả lời, lần sau hãy nhớ thêm mã của bạn. Rất có thể là câu trả lời của tôi sẽ không giúp bạn nhiều như nó có thể bởi vì tôi không thực sự biết mã của bạn.

Đây là cũ nhưng dù sao, NẾU tôi hiểu câu hỏi của bạn (và kiến ​​trúc ứng dụng) một cách chính xác, nó có vẻ giống như một trường hợp để giao tiếp.

Ví dụ:

thêm giao diện này như một thành viên đến đoạn nội dung:

public class ContentFragment extends Fragment{ 

    public interface onFragmentTitleHighlighted{ 
     public void highLightTitle(String title); 
    } 
} 

và có đoạn tiêu đề thực hiện nó. Đảm bảo trang bị các đoạn nội dung của bạn với tiêu đề fragmnet và thêm cuộc gọi vào highLightTitle(String title); trong lời gọi onCreateView (...) của đoạn nội dung. Bằng cách này bất cứ khi nào một fragmnet nội dung mới đang được thêm vào tiêu đề sẽ được đánh dấu.