禁止橫屏和豎屏切換,豎屏後橫屏防止再次啟動activity
阿新 • • 發佈:2019-02-03
在寫程式時,往往會遇到這樣一個問題,在豎屏輸入一些內容後,再橫屏。對應的內容變化了。其實這個問題就是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) { } }