我有以下問題。我試圖在配置更改時保留我的一個片段的佈局。所以我想,我可以使用setRetainInstance(true)
。然而,事實證明,這並不奏效。問題是,onCreateView
每次在配置更改時被調用,以便我的佈局被重置爲初始狀態。如何在配置更改的Android片段中保留我的佈局?
我能做些什麼來保護我的佈局? 我需要在onCreateView
以內的其他地方移動我的代碼嗎?
請注意:I 不能因爲我的標籤託管活動託管更多選項卡,因此請在清單中使用hack並使用android:configChanges="orientation"
。我只想保留一個選項卡中的狀態。
下面是我的一些代碼:
public class MyFragment extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
setRetainInstance(true);
View rootView = inflater.inflate(R.layout.abc, container, false);
// Some more code that was omitted ..
return rootView;
}
}
您不應該在* visible *片段上使用'setRetainInstance()',因爲如果擁有的活動被重新創建,您將泄漏對之前活動的引用。 –
@AlexMDC和我該怎麼做才能保留我的佈局可見碎片? – user2426316
即使片段是與擁有活動一起重新創建的,您所描述的內容也應自動工作。如果你刪除了'setRetainInstance()'調用,並讓片段恢復到默認行爲,會發生什麼?視圖恢復時佈局有何不正確? –