1. 程式人生 > >禁止橫屏和豎屏切換,豎屏後橫屏防止再次啟動activity

禁止橫屏和豎屏切換,豎屏後橫屏防止再次啟動activity

在寫程式時,往往會遇到這樣一個問題,在豎屏輸入一些內容後,再橫屏。對應的內容變化了。其實這個問題就是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) { 
} 
}