Android Pie 9.0方向问题
Android Pie 9.0 orientation issue
在 onCreate() 中使用 setRequestedOrientation() 几秒钟后,我得到 phone 方向而不是应用程序方向。
例如: 方向设置为横向(使用 setRequestedOrientation - 在 onCreate 中)如果 phone 是纵向我的应用程序是纵向几秒钟比应用程序进入横向。
使用: onCreate() 中的 setRequestedOrientation
已添加: 方向作为 AndroidManifest
中的配置更改
注意:这仅发生在 Android Pie 9.0
在清单中,
<activity
android:name="Your Activity Name"
android:screenOrientation="landscape" />
在 Activity onCreate 中,
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
解决此问题的唯一方法是在清单中指定屏幕方向。如果您需要能够以编程方式指定屏幕方向,那么在不显示初始错误方向的情况下没有很好的方法来实现它。
这是因为在调用 onCreate(...)
时,大多数 Activity 已经初始化(使用默认值或来自 XML 的值)。当您调用 setRequestedOrientation()
时,它充当 activity 原始配置中的 更改 ,并且只要主线程完成其当前工作并获得周围执行命令。
例如,当您从自定义主题设置状态栏的颜色时,您可能会遇到类似的延迟。如果您在清单中的 activity 上应用主题,状态栏将在 activity 打开时立即着色。但是,如果您在 onCreate()
中应用主题,则状态的先前颜色将在短时间内可见,直到应用主题中提到的颜色。
最后一件事要注意...根据我的经验,主题示例甚至可能这个方向案例在某种程度上也取决于设备,也许 Android 版本。清单中的设置总是在 activity 显示之前应用到它,但某些设备可能会应用 onCreate
中请求的内容,速度太快以至于您不会注意到它。
在 onCreate() 中使用 setRequestedOrientation() 几秒钟后,我得到 phone 方向而不是应用程序方向。
例如: 方向设置为横向(使用 setRequestedOrientation - 在 onCreate 中)如果 phone 是纵向我的应用程序是纵向几秒钟比应用程序进入横向。
使用: onCreate() 中的 setRequestedOrientation 已添加: 方向作为 AndroidManifest
中的配置更改注意:这仅发生在 Android Pie 9.0
在清单中,
<activity
android:name="Your Activity Name"
android:screenOrientation="landscape" />
在 Activity onCreate 中,
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
解决此问题的唯一方法是在清单中指定屏幕方向。如果您需要能够以编程方式指定屏幕方向,那么在不显示初始错误方向的情况下没有很好的方法来实现它。
这是因为在调用 onCreate(...)
时,大多数 Activity 已经初始化(使用默认值或来自 XML 的值)。当您调用 setRequestedOrientation()
时,它充当 activity 原始配置中的 更改 ,并且只要主线程完成其当前工作并获得周围执行命令。
例如,当您从自定义主题设置状态栏的颜色时,您可能会遇到类似的延迟。如果您在清单中的 activity 上应用主题,状态栏将在 activity 打开时立即着色。但是,如果您在 onCreate()
中应用主题,则状态的先前颜色将在短时间内可见,直到应用主题中提到的颜色。
最后一件事要注意...根据我的经验,主题示例甚至可能这个方向案例在某种程度上也取决于设备,也许 Android 版本。清单中的设置总是在 activity 显示之前应用到它,但某些设备可能会应用 onCreate
中请求的内容,速度太快以至于您不会注意到它。