需要将方向锁定为横向,但在旋转为纵向时仍需要通知

时间:2015-12-19 07:13:04

标签: android android-layout android-activity orientation

我正在开发一款Android应用程序,该应用程序需要将屏幕锁定为横向,因为UI仅适用于横向设计。但是,屏幕上发生的事情仍然需要知道设备何时旋转到纵向模式。如果我将以下内容放在AndroidManifest.xml中:

android:screenOrientation="landscape"

这可以防止触发屏幕方向更改通知(onConfigurationChanged)。但是,如果我将screenOrientation设置为" sensor,"操作系统自动旋转UI而无法阻止它:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    //Can't override newConfig and force landscape? wtf?
    super.onConfigurationChanged(newConfig);
}

我只是以错误的方式接近这个吗?如何保持屏幕格局(防止操作系统自动更改方向)但在方向更改时仍会收到通知?

1 个答案:

答案 0 :(得分:0)

我认为你想要的是:

<activity ...
    android:configChanges="orientation"
    ...

根据Android清单<activity>元素的文档:

  

android:configChanges

     

列出活动将自行处理的配置更改。在运行时发生配置更改时,默认情况下会关闭并重新启动活动,但声明具有此属性的配置将阻止活动重新启动。相反,活动仍在运行,并调用其onConfigurationChanged()方法。

...

  

价值:&#34;方向&#34;

     

说明:屏幕方向已更改 - 用户已旋转设备。