【问题标题】:Android: Auto Rotate not working after setRequestedOrientationAndroid:在 setRequestedOrientation 之后自动旋转不起作用
【发布时间】:2017-02-17 12:24:43
【问题描述】:

我有一个视频播放器,其中有两个功能:

  1. 如果禁用自动旋转并且当用户单击全屏按钮时,我会强制 orientation 使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE) 进入 landscape 视图,并在退出全屏时返回纵向视图。

  2. 我已覆盖 onConfigurationChanged 以检测用户启用自动旋转功能时方向的变化,并根据方向更改活动视图。

现在这个设置的问题是,如果用户启动活动并进入全屏状态并且setRequestedOrientation 被调用一次,稍后当auto-rotate 启用时,活动不会接收到方向更改并且onConfigurationChanged不会被调用。

我在这里 (https://stackoverflow.com/a/6109206/5167868) 读到它们不会同时工作。

我想知道是否有办法实现两者,因为我看到像 MX Player 这样的玩家在他们的应用中这样做。

【问题讨论】:

标签: android orientation screen-orientation autorotate screen-rotation


【解决方案1】:

使用setRequestedOrientation() 修复屏幕方向后,自动旋转功能将无法使用。所以为了让它工作,你可以这样做:

在您设置方向后使用:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE)

称之为: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)

这将使自动旋转再次起作用!

【讨论】:

  • 不工作,我的屏幕切换到横向,然后立即恢复纵向。
猜你喜欢
  • 2017-12-04
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多