首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android8.1屏幕定位问题:切换到全景屏幕

Android8.1屏幕定位问题:切换到全景屏幕
EN

Stack Overflow用户
提问于 2017-11-10 17:29:45
回答 10查看 17.7K关注 0票数 57

我有所有的活动在肖像模式,除了一个我用来播放的视频,始终是景观。我发现在Android8.1上,每次我打开视频活动并关闭它时,之前的活动都会进入风景,即使它在清单上被设置为“肖像”。

  1. 有时去肖像,然后去景观和停留在景观上。
  2. 有时是肖像,然后是风景,最后又是肖像。

这只是当一个活动从它的景观中返回时才发生。

有谁在经历这种事吗?

谢谢。

编辑

我在Google:https://issuetracker.google.com/issues/69168442上报告了这个bug

编辑2

它似乎固定在Android 9上。

EN

回答 10

Stack Overflow用户

发布于 2018-03-15 19:34:53

只是在我自己的应用程序中遇到了这个问题。

适用于我的解决方案如下:

代码语言:javascript
运行
复制
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);
  }
}

上面的代码应该进入处于景观模式的活动(即第二个活动,以及您按下后退按钮的活动)。

我要指出的是,这个解决方案不是我自己的,我是从以下链接的#20帖子中摘取的(在“任择议定书”中也有说明):

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

我只是在想,如果人们不需要搜索其他页面,就可以更容易地访问它。

票数 16
EN

Stack Overflow用户

发布于 2018-08-14 11:29:08

这个解决了问题。

重写onBackPressed()方法的景观活动,并设置方向肖像

代码语言:javascript
运行
复制
@Override
public void onBackPressed() {
    super.onBackPressed();
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
票数 10
EN

Stack Overflow用户

发布于 2018-06-21 12:52:01

如果你在你的宣言中有像DialogTheme一样的theme=Theme.AppCompat.Light.Dialog,从宣言中移除对话活动的集合方向标签,它将从先前的活动中取下方向,并将set导向标签放置到回放活动中。

对于下面的版本,请将其放在oncreate上

代码语言:javascript
运行
复制
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  }

并为应用程序Theme.AppCompat.Light.DarkActionBar设置主题,不需要将主题添加到活动中

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47228194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档