Sol*_*Sol 53 android android-8.1-oreo
我以纵向模式进行所有活动,除了我用来播放始终为风景的视频的活动.我发现在Android 8.1上每次打开视频活动并关闭它之前的活动都会转到横向,即使它在清单上设置为"纵向".
这只发生在从景观活动回来的时候.
有人在体验这个吗?
谢谢.
编辑
我在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
我只是觉得如果人们不必搜索其他页面就可以更容易访问.
这解决了这个问题.
覆盖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)
对于肖像的