【问题标题】:Issue : Changing screen orientation in different activity问题:在不同的活动中更改屏幕方向
【发布时间】:2013-03-18 04:23:47
【问题描述】:

我的主 Activity 在画布上有 4 张图像,屏幕方向为“纵向”。当我遍历屏幕方向为“横向”的子活动时。

问题:当我从子 Activity 回到主 Activity 时,4 个图像被重新定位到不同的位置。我需要解决这个问题,这样即使屏幕方向发生变化,Activity 也能正常工作。

提前致谢。

布局

<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>

【问题讨论】:

  • 你回来的时候,方向是什么?发布您的布局。

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


【解决方案1】:

您可以在 android manifest 文件中将方向设置为主要活动的纵向和子活动的横向。

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

类似地将子活动的方向设置为横向。

【讨论】:

    【解决方案2】:

    您可以在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"

    希望这会有所帮助!希望收到您的回复。

    【讨论】:

      【解决方案3】:

      您可以像这样在清单中为活动添加方向

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

      或者你可以像这样在java文件中设置布局方向

      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 2014-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多