android - Activity 方向继承自父级

标签 android android-activity orientation

我有一个包含 2 个 Activity 的 Android 应用程序(实际上更多,但这里无关紧要)。

第一个具有固定方向(横向),第二个具有默认(未定义)方向。第一个 Activity 充当初始屏幕,然后自动启动第二个 Activity 。

问题是第二个 Activity 从第一个 Activity 继承横向方向,即如果设备方向是垂直的,当第二个 Activity 出现时它具有横向方向,然后立即旋转到垂直方向。

如果我删除第一个 Activity 以便第二个 Activity 在开始时出现,它就不会发生。

请注意,由于某种原因,我既不能为第一个 Activity 设置垂直方向,也不能设置未定义的方向并相应地绘制。

请帮忙。

<activity android:name="SplashActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:configChanges="screenSize" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="GameActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:configChanges="orientation|screenSize" android:screenOrientation="fullSensor"> </activity>

我还尝试使用“未定义”或根本不为 GameActivity 设置任何方向。

最佳答案

希望我做对了。因此,您希望第二个 Activity 不会获得第一个的轮换。

在第二个 ActivityonCreate() 方法中使用以下代码:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

如果仍然没有帮助,那么这只是 Android 的行为。 如果有帮助,那就太好了。

Intent 第一个 Activity 之后,应该如下所示:

Intent intent = new Intent(SplashActivity.this, GameActivity.class);
startActivity(spcthxopen);

你只是把

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

在那个 Intent 下。我刚刚尝试过,它完美地解决了 Android 的默认行为。

关于android - Activity 方向继承自父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32386385/

相关文章:

android - 将 Android 应用程序从后台带到前台的方法

android - 你应该有一个 com.dropbox.client2.android.AuthActivity 方案 :XXXXXXXX

android - 防止由于方向改变而导致android中的状态改变

CSS 媒体查询未检测到方向变化

android - Retrofit 2,解析json,忽略数组内部的错误数据类型

java - 为什么在将数据从 Activity 传递到 Fragment 时会出现空指针异常?

java - android sdk,错误 : java. lang.SecurityException:权限拒绝:尝试更改组件状态

android - Android中1920*1080会用到哪个res文件夹?

java - 电池没电时会调用哪些 Android 方法?

ios - 键盘存在时向上移动对话框有效,除非 ipad 被转动