我正在开发一款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);
}
我只是以错误的方式接近这个吗?如何保持屏幕格局(防止操作系统自动更改方向)但在方向更改时仍会收到通知?
答案 0 :(得分:0)
我认为你想要的是:
<activity ...
android:configChanges="orientation"
...
根据Android清单<activity>
元素的文档:
android:configChanges
列出活动将自行处理的配置更改。在运行时发生配置更改时,默认情况下会关闭并重新启动活动,但声明具有此属性的配置将阻止活动重新启动。相反,活动仍在运行,并调用其
onConfigurationChanged()
方法。
...
价值:&#34;方向&#34;
说明:屏幕方向已更改 - 用户已旋转设备。