在寫程式時,往往會遇到這樣一個問題,在豎屏輸入一些内容後,再橫屏。對應的内容變化了。其實這個問題就是activity重新開機了,所引起的。以下有:禁止橫屏和豎屏切換,不妨了解下。
其實實作這個要求很簡單,隻要在
AndroidManifest.xml 裡面加入這一行 android :screenOrientation="landscape "(landscape 是橫向,portrait 是縱向)。
在android中每次螢幕的切換動會重新開機Activity,是以應該在Activity銷毀前儲存目前活動的狀态,在Activity再次Create的時候載入配置。在activity加上android:configChanges="keyboardHidden|orientation"屬性,就不會重新開機activity.而是去調用onConfigurationChanged(Configuration newConfig).這樣就可以在這個方法裡調整顯示方式.
MainActivity中:
public void onConfigurationChanged(Configuration newConfig) {
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.v("Himi", "onConfigurationChanged_ORIENTATION_LANDSCAPE");
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
Log.v("Himi", "onConfigurationChanged_ORIENTATION_PORTRAIT");
}
} catch (Exception ex) {
}
}
public void onConfigurationChanged(Configuration newConfig) {
try { super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.v("Himi", "onConfigurationChanged_ORIENTATION_LANDSCAPE");
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
Log.v("Himi", "onConfigurationChanged_ORIENTATION_PORTRAIT");
}
} catch (Exception ex) {
}
}