2012-01-02 68 views
7

我有應用程序標題片段和內容片段在屏幕上。當用戶點擊標題片段中的項目時,將創建相應片段並將其插入到框架中,並且所選標題在標題片段中突出顯示。如何恢復Android片段查看狀態

交易使用fragment.addToBackStack()完成,所以當用戶點擊BACK密鑰時,先前的片段被恢復並插入到幀中。

當事務管理器恢復碎片時恢復視圖狀態的最佳解決方案是什麼?

問題是我應該突出顯示片段名稱在標題片段中,我應該知道它是什麼片段。我通過將視圖狀態存儲在自己的堆棧中解決了這個問題:使用事務管理器偵聽器創建碎片並恢復在更改事務backstack時。

但這似乎不是正確的解決方案。

回答

1

在答案之前,下次記得添加你的代碼。機會是我的答案不會盡你所能幫助你,因爲我不知道你的代碼。

這是舊的,但無論如何,如果我正確理解你的問題(和應用程序體系結構),這聽起來像是一個接口的情況。

實施例:

添加此界面作爲成員的內容片段:

public class ContentFragment extends Fragment{ 

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

和具有標題片段實現它。確保爲內容片段裝備標題fragmnet,並在內容片段的onCreateView(...)調用中添加對highLightTitle(String title);的調用。通過這種方式,每當添加新的內容碎片時,標題將被突出顯示。