问题:更改不同活动中的屏幕方向

时间:2013-03-18 04:23:47

标签: android android-layout android-activity android-screen-support android-screen

我有一个主要的Activity,它在画布上有4个图像,屏幕方向为" portrait"。当我遍历到具有屏幕方向的子Activity时," landscape"。

问题:当我从子Activity返回到主Activity时,4个图像被重新定位到不同的位置。我需要解决这个问题,以便即使屏幕方向发生变化,活动也很好。

先谢谢。

布局

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Black">
   <activity
        android:name=".DragDrop"
        android:label="@string/title_activity_main" 
        android:screenOrientation="landscape"  
        android:configChanges="orientation|screenSize|keyboardHidden"   >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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


    <activity
        android:name=".QuizHard"
        android:label="@string/title_activity_main"
        android:screenOrientation="landscape"
        android:configChanges="orientation|screenSize|keyboardHidden"   >

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

</application>

3 个答案:

答案 0 :(得分:0)

您可以在android清单文件中设置主要活动的肖像和儿童活动的风景。

       <activity android:name="Main"
      android:screenOrientation="portrait"/>

同样为儿童活动设定了景观方向。

答案 1 :(得分:0)

您可以在AndroidManifest.xml文件中添加语句,告诉它处理某些屏幕更改,例如方向更改。通常,当方向更改时,将加载新布局并重新创建屏幕,通过将此语句添加到清单文件,它将不会重新创建视图。更改活动的活动声明并添加此声明。

    <activity
        android:name=".MainActivity"
        android:configChanges="orientation"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

android:configChanges="orientation"会阻止Android重新创建活动,从而阻止其重新加载视图并更改图像位置。如果您希望Android将方向锁定为纵向或横向,您也可以在configChanges语句之后添加android:screenOrientation="portrait"

希望这有帮助!很想听听你的结果。

答案 2 :(得分:0)

您可以为此活动中的活动添加方向

<activity android:name="Main" android:screenOrientation="portrait"/>

或者您可以像这样在

中设置java文件中的布局方向
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);