我有一个主要的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>
答案 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);