今天在做的一個項目裏面,剛好有一個3D的效果在橫豎屏裏面,是需要變換的,本來嘛,如果用網上常用的方法,就是在XML文件裏面定義那個orient,和在主activity裏面寫一個onConfigChange方法,但是這裏我們不行,因爲我這裏橫豎屏用的並不是同一個 layout文件,所以很多的東西都不一樣,所以
這就要求了,我們必須在一個狀態下保存,然後在另一個狀態下取出來才行,這就是根本的思路。
具體的方法,是覆寫activity裏面的onRetainNonConfigurationInstance()方法,然後利用這個方法來保存一個object,之後在使用getLastNonConfigurationInstance()取回這個數。
例如: @Override
public Object onRetainNonConfigurationInstance() {
// Flag the loader to stop early before switching
mModel.stopLoader();
mAllAppsGrid.surrender();
return mUtil;
}
這個mUtil,就是我要保存的東西,在轉屏之後,使用getLastNonConfigurationInstance(),就可以返回這個 Object,當然,前面可以加上強制轉換,非常好用。