Android方向更改

时间:2012-06-11 02:59:45

标签: android

我有一个简单的活动,因为屏幕触摸。奇怪的是,活动以我所处的任何方向开始,但旋转设备什么都不做。

我使用的是运行Android 4.0.3的Acer A100

AndroidManifest.xml

SingleTouchTest.java

主要活动是列表视图,它加载我的单独系统测试。我可以运行SingleTouchTest活动而不会出现旋转问题。我尝试过各种组合:

android:configChanges="keyboard|keyboardHidden|orientation" android:screenOrientation="unspecified"

并且它不会自动旋转。我甚至删除了:

public void onConfigurationChanged功能,没有任何反应。

3 个答案:

答案 0 :(得分:6)

因为你正在使用

 android:screenOrientation="unspecified"
每个活动

,根据谷歌

定义
  

默认值。系统选择方向。政策呢   使用,因此在特定环境中做出的选择可能会有所不同   从设备到设备。

这使我认为该设备出于某种原因宣布了所需的方向。也许尝试将屏幕方向切换到

android:screenOrientation="fullSensor"

应该从特定的设备手中取出它。

答案 1 :(得分:2)

试试这个:

android:screenOrientation="fullSensor"

方向由设备方向传感器决定。显示器的方向取决于用户如何握住设备。这应该是你想要的。另外,有关更多选项,请查看此链接 - Activity Element.

答案 2 :(得分:2)

在AndroidManifest中,摆脱|orientation。原因如下:

android:configChanges允许您手动处理特定的配置更改。由于您没有告诉您的应用程序手动旋转(通过onConfigurationChanged()内的代码),它根本没有做任何事情。要允许您的应用程序自动使用轮换,您必须告诉清单 手动处理方向。

here上解释此问题的文档为Android Developers Site