Android Pie 9.0 方向问题

标签 android android-9.0-pie

在 onCreate() 中使用 setRequestedOrientation() 几秒钟时,我得到的是手机方向而不是应用程序方向。

例如:方向设置为横向(使用 setRequestedOrientation - 在 onCreate 中),如果手机处于纵向,我的应用程序处于纵向状态几秒钟,然后应用程序进入横向。

使用: onCreate() 中的 setRequestedOrientation 添加:方向作为 AndroidManifest 中的 configChanges

注意:这种情况仅发生在 Android Pie 9.0 中

最佳答案

解决这个问题的唯一方法是在 list 中指定屏幕方向。如果您需要能够以编程方式指定屏幕方向,那么没有好的方法可以在不显示初始错误方向的情况下实现它。

这是因为在调用 onCreate(...) 时,大部分 Activity 已经初始化(使用默认值或 XML 中的值)。当您调用 setRequestedOrientation() 时,这将充当 Activity 原始配置中的更改,并且只要主线程完成当前工作并开始执行命令。

例如,当您从自定义主题设置状态栏的颜色时,您可能会遇到类似的延迟。如果您在 list 中的 Activity 上应用主题,则 Activity 打开后状态栏就会自行着色。但是,如果您在 onCreate() 中应用主题,则状态的先前颜色将在短时间内可见,直到应用主题中提到的颜色为止。

最后要注意的一点...根据我的经验,主题示例甚至可能是这个方向案例在某种程度上也取决于设备,也许还取决于 Android 版本。 list 中的设置始终会在 Activity 显示之前应用到 Activity,但某些设备可能会应用 onCreate 中请求的内容,速度太快,以至于您不会注意到。

关于Android Pie 9.0 方向问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57674536/

相关文章:

java - 如何循环播放多个图像的淡入和淡出动画?

javascript - HTC One X KeyCode 始终返回零

android - Android P Preview : Detected problems with API compatibility error 上的 Espresso 测试

android - E/com.facebook.appevents.RestrictiveDataManager : updateRulesFromSetting failed

android - 如果 Activity 正在完成,如何防止调用 onCreate/onCreateView 方法

android - 完全禁用 Android GridView 突出显示(禁用选择)

android - Android 设备上是否可以有 3 个或更多应用程序对用户可见?

安卓 P - 警告 : "incompatible version of the Android OS"

安卓 P : UsageStatsManager getAppStandbyBucket

android - android ActionBar 中 EditText 上的 addTextChangedListener()