天天看點

禁止橫屏和豎屏切換,豎屏後橫屏防止再次啟動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) { 
} 
}   
           

繼續閱讀