簡體   English   中英

Android如何在片段分離/附加中保留視圖狀態

[英]How does android retain view state across fragment detach/attach

我有一個選項卡宿主控件,該控件使用片段加載選項卡。

每次切換選項卡時,它都會分離舊片段並附加新片段。

我注意到在此過程中調用了OnCreateView方法,並且由於每次都會重新創建視圖,所以我的很多狀態都丟失了。 但是,我注意到某些視圖狀態(例如,編輯文本的值)在分離/附加過程中得到了維護。

我想知道當視圖被完全銷毀並重新創建為新視圖時,Android如何自動恢復狀態。 當我僅切換選項卡時,捆綁包saveInstanceState的值始終為null。 僅當我執行旋轉屏幕之類的操作時,捆綁包saveInstanceState才會填充。

據我所知,狀態恢復是在片段onStart方法被調用之前進行的。

當附加和分離片段時,僅視圖被銷毀,片段實例保持不變。

片段管理器還原具有ID的視圖的狀態,而saveInstanceState為null。

如果發生輪換,您可能會在其他地方(在活動的onCreate()?中)重新創建片段。

當片段要從窗口中刪除(或替換)時,將調用其onSaveInstanceState(Bundle) (或onRestoreInstanceState(Bundle))方法。 這將通過片段層次結構傳播,以恢復其先前狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM