【问题标题】:How to detect device orientation changed while activity is locked to portrait mode?如何在活动锁定为纵向模式时检测设备方向更改?
【发布时间】:2021-05-01 15:19:32
【问题描述】:

目标

在我的应用程序中,我需要检测屏幕方向何时变为ORIENTATION_PORTRAIT,而活动被锁定为portrait 模式。有没有办法做到这一点?

场景

更具体地说,想想这种情况。我正在观看有关横向布局的视频。当我按下“退出全屏”按钮时,activity.requestedOrientation 设置为SCREEN_ORIENTATION_PORTRAIT,并且显示屏旋转但手机仍然是横向的。在用户首先将手机物理旋转为纵向之前,我不希望显示器旋转回横向。 youtube 应用程序的工作原理。为此,当用户将设备旋转为纵向时,我需要将activity.requestedOrientation 设置为SCREEN_ORIENTATION_UNSPECIFIED。我不知道如何收到此事件的通知。

尝试

我尝试使用OrientationEventListener.onOrientationChanged()。但是,只要设备的角度发生变化,就会调用它。不是很有用。

【问题讨论】:

  • 我认为您的目标是在活动锁定为横向模式时将方向变为orientation_portrait?反过来就没有意义了。
  • @DEX7RA 如果你能帮我这样做,那也会很有帮助。

标签: android


【解决方案1】:

如果你想以编程方式使用:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Do your operation
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

【讨论】:

  • 正如我在问题中所述,我使用activity.requestedOrientation 以编程方式更改屏幕方向。这没有回答我的问题。
  • 我更新了我的答案。抱歉没有理解对。希望有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多