Android 8.1屏幕方向问题:翻转横向纵向屏幕

Sol*_*Sol 53 android android-8.1-oreo

我以纵向模式进行所有活动,除了我用来播放始终为风景的视频的活动.我发现在Android 8.1上每次打开视频活动并关闭它之前的活动都会转到横向,即使它在清单上设置为"纵向".

  1. 有时候去画像然后去景观并留在风景中.
  2. 有时去肖像然后去景观,最后再画像.

这只发生在从景观活动回来的时候.

有人在体验这个吗?

谢谢.

编辑

我在Google上报告了该错误:https://issuetracker.google.com/issues/69168442

编辑2

它似乎在Android 9上修复

小智 15

刚刚在我自己的应用程序中遇到了这个问题.

适合我的解决方案如下:

onCreate(){
   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}

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

onResume(){
  if (android.os.Build.VERSION.SDK_INT >= 27) {
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
  }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码应该进入横向模式的活动(即第二个活动,以及按下后退按钮的活动)

我想指出这个解决方案不是我自己的,我从以下链接的#20帖子中获取了它(也在OP中注明):

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

我只是觉得如果人们不必搜索其他页面就可以更容易访问.


Kri*_*hna 9

这解决了这个问题.

覆盖Landscape活动onBackPressed()方法并将方向设置为Portrait.

@Override
public void onBackPressed() {
    super.onBackPressed();
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Run Code Online (Sandbox Code Playgroud)


小智 0

在每个活动的 onCreate 方法上插入这一行

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Run Code Online (Sandbox Code Playgroud)

对于景观和

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Run Code Online (Sandbox Code Playgroud)

对于肖像的