2013-08-17 36 views
0

如果這個問題聽起來很奇怪,那麼說明:我能做些什麼來保存片段的實例狀態,但仍然提供橫向佈局?

我有一個活動,承載我的三個片段。因爲我想我的片段,以保存其實例狀態時,旋轉設備之一,我在清單中定義爲我的活動承載片段:

android:configChanges="orientation|screenSize" 

這一切正常。但是,現在我又遇到了另一個問題:我的其他片段之一使用特殊的橫向佈局。問題是,這種佈局不會立即用於設備旋轉。我認爲這是因爲新版面只能在onCreate上設置。

我能做些什麼來解決這個問題?我希望立即設置我的風景佈局。

回答

0

你可以把

setRetainInstance(true); 
在onCreateView

();你的片段的方法。我認爲它應該做到這一點。

+0

這就是我的想法。但它並沒有做到這一點。對我來說,這是一個謎... – user2426316

0

據我所知,你需要添加configChanges參數到你的清單。

您可以覆蓋onSaveInstanceState()在片段

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    savedInstanceState.putInt(KEY_INDEX, someIntValue); 
} 

這梅索德應您的片段被銷燬之前被調用。

現在,在您的onCreate(捆綁savedInstanceState)(或onCreateView())梅索德:

if (savedInstanceState != null) { 
    someIntValue = savedInstanceState.getInt(KEY_INDEX);    
} 

這樣,它不應該與任何其他特別片段干預。

相關問題