我在Android OS 8.1.0中遇到问题
我在使用操作系统版本8.1.0以后的谷歌像素2 xl设备中观察到此问题(Android P开发者预览1中也存在问题)
我看到有人在Google群组中发帖
https://issuetracker.google.com/issues/69168442
但没有得到任何修复,我该如何解决这个问题。?
我的应用程序是混合应用程序(cordova),我也尝试在本机android中复制问题,但在本机android示例应用程序中没有问题
答案 0 :(得分:0)
是的,这是Android 8.1 OS版本中的问题。由于这已经过时了。我们可以解决这些问题。在此特定的API级别中,Android OS可能会存储最新的方向值并将其应用于所有屏幕,直到上一个屏幕或该特定屏幕被破坏为止。因此,解决此类问题的方法是在返回屏幕之前更改方向。 例如: 如果ScreenA处于纵向模式,而ScreenB处于横向模式,并且如果将屏幕移至“横向”的ScreenB,并且如果返回到ScreenA而又不取消ScreenB(还原ScreenA),则ScreenA在“横向”中也是可见的。 要解决此问题,请在ScreenB的onPause()或OnStop()中强制将ScreenA的方向更改为纵向,以恢复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);
}