簡體   English   中英

沒有視圖ID的活動onSaveInstanceState

[英]Activity onSaveInstanceState in the absence of view IDs

Activity#onSaveInstanceState的默認實現是:

默認實現通過在具有ID的層次結構中的每個視圖上調用onSaveInstanceState()來為您處理大多數UI每個實例狀態

Android數據綁定指南以及此視頻 -幻燈片9建議我們在使用數據綁定時不再需要視圖ID。 我的問題是:缺少View ID如何影響狀態保存/還原?

可以說,當使用數據綁定時,不應該依賴默認機制來保存/恢復狀態,而應該依賴於綁定到布局的ViewModel來擁有最新狀態,但是我仍然很想知道關於影響。

您不需要ID並不意味着您永遠不要使用ID。 那是為了更新您的視圖。 在許多其他情況下,id很有用,例如RelativeLayout中的規則。

因此,如果狀態恢復對於您的用例很重要(例如,您的模型需要一段時間才能恢復),則請務必放置id並禁用綁定,直到數據准備就緒為止。

我的問題是:缺少View ID如何影響狀態保存/還原?

為了直接回答您的問題,缺少視圖ID將阻止onSaveInstanceState恢復該視圖。 對於沒有ID的視圖,Android的文檔仍然適用。

沒有ID的所有視圖仍將被重新創建,但是它們不會恢復其狀態。

我只是在一個簡單的應用程序中對此進行了測試,沒有ID的視圖沒有恢復其狀態。

暫無
暫無

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

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