1

在 Android OS 8.1.0 中遇到问题

  • 开始肖像活动(清单上的肖像声明)
  • 开始景观活动(清单上的景观声明)
  • 完成景观活动
  • 纵向活动再次显示,但方向开始翻转:首先是纵向模式,然后是横向模式,最后是纵向。

我在操作系统版本 8.1.0 以上的 google pixel 2 xl 设备中观察到了这个问题(Android P developer preview1 中也存在这个问题)

我也看到有人在谷歌群组发帖

https://issuetracker.google.com/issues/69168442

但没有得到任何修复,我该如何解决这个问题。?

我的应用程序是混合应用程序(cordova),我也尝试在原生 android 中复制问题,但在原生 android 示例应用程序中不存在问题

4

1 回答 1

0

是的,这是 Android 8.1 操作系统版本中的问题。因为这已经过时了。我们可以解决这些问题。在这个特定的 API 级别中,Android 操作系统可能会存储最新的方向值并应用于所有屏幕,直到前一个屏幕或该特定屏幕被销毁。因此,解决此类问题的方法是在返回屏幕之前更改方向。例如:如果 ScreenA 处于纵向模式,而 screenB 处于横向模式,并且如果屏幕移动到 ScreenB(横向),并且如果您在没有杀死 ScreenB(恢复 ScreenA)的情况下回到 ScreenA,则 screenA 在横向中也可见。要解决此问题,请在 ScreenB 的 onPause() 或 OnStop() 中强制将 ScreenA 的方向更改为 Portrait(以恢复 ScreenA)。

if (android.os.Build.VERSION.SDK_INT >= 27) {
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

after this call, ScreenA will be in portrait. Also, in onResume() of ScreenB,

if (android.os.Build.VERSION.SDK_INT >= 27) {
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
于 2018-10-04T11:28:14.870 回答