1. 程式人生 > >Android橫豎螢幕切換

Android橫豎螢幕切換

預設情況下,當“螢幕方向”或“鍵盤顯示隱藏”變化時都會銷燬當前Activity,建立新的Activity,如果不希望重新建立Activity例項,可以按如下配置Activity:

<activity android:name=".MainActivity" android.configChanges="keyboardHidden|orientation">

上面的android:configChanges屬性指定了要捕獲“螢幕方向”和“鍵盤顯示隱藏”變化,當捕獲到這些變化後呼叫Activity的onConfigurationChanged()方法。

預設情況下(沒有配置android:configChanges屬性):

豎屏切換橫屏:銷燬當前Activity之後,建立一個新的Activity例項。

橫屏切換豎屏:銷燬當前Activity之後,建立一個新的Activity例項。新的Activity例項很快就會被銷燬,接著又會建立一個新的Activity例項。如果只希望建立一個例項,可以配置

android:configChanges="orientation"

 <!-- 主介面 -->
        <activity
            android:name="com.CopybookMain"
            android:label="@string/app_name"
            android:screenOrientation="sensorPortrait"
            android:configChanges="keyboard|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <!-- 練習 -->
        <activity
            android:name="com.WriteWord"
            android:label="@string/app_name"
            android:screenOrientation="sensorPortrait"
            android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="com.noahedu.copybook.writeword" />


                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

 <activity
            android:name="com.MainActivity"
            android:label="@string/app_name" 
            android:launchMode="singleTop"
            android:screenOrientation="sensorLandscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>