2
當活動重新啓動時,隱藏的所有片段再次顯示。通過將此屬性設置爲true,片段將保留其實例。這看起來很奇怪,我不明白爲什麼這個行爲不是默認設置的。 這是做這件事的最好方法嗎?is setRetainInstance(true)處理配置更改(屏幕翻轉)時丟失顯示/隱藏的碎片的最佳方法?
當活動重新啓動時,隱藏的所有片段再次顯示。通過將此屬性設置爲true,片段將保留其實例。這看起來很奇怪,我不明白爲什麼這個行爲不是默認設置的。 這是做這件事的最好方法嗎?is setRetainInstance(true)處理配置更改(屏幕翻轉)時丟失顯示/隱藏的碎片的最佳方法?
不確定對於「這樣做的最佳方式是什麼」的問題是否有單一答案,但我評論過類似的「這項工作如何」問題。 This discussion可能會幫助您決定是否應用setRetainInstance(true)
或setRetainInstance(false)
。請注意,使用v4.support*
庫時,此方法存在兼容性問題。我同意保留這個實例並不是許多場景的最佳方式。
我有一個活動顯示一個窗體,根據用戶選擇動態更改其佈局。每當屏幕旋轉窗體佈局中的所有隱藏視圖再次顯示時,我該如何處理這個問題?如果我不使用setRetainInstance(true),每次有配置更改時,是否必須將表單的狀態存儲在savedInstanceState包中,並將表單的佈局恢復爲其狀態? – 2012-07-24 11:34:58
嗨Hector,保存在''''onSavedInstanceState(...)''''標誌或其他信號,你的活動用來顯示或隱藏字段。將''''''''''''''''''''''''''作爲onSavedInstanceState的一部分保存的''''os.Bundle''被傳回給''''''''''''onCreate(Bundle bundle)''''中的活動。執行顯示和隱藏字段的邏輯,作爲onCreate或onCreateView的一部分(如果您使用的是「Fragment」)。 – OceanLife 2012-07-24 13:42:25
如何保留在堆棧中維護的片段的配置更改。因爲我們不能使用'setRetainInstance(true)' – Dory 2014-04-04 13:21:06