可能重复:
不希望在手机旋转时破坏/创建活动
我正在尝试编写一个程序,该程序需要在手机四处旋转时平滑方向传感器样本。每次更改手机的方向时,它都会在布局更改时中断数据并冻结程序。如何将其锁定在一个方向(横向或纵向,没关系)?
我认为它与android:layout
xml 文件有关,但我在网上找不到任何东西。
可能重复:
不希望在手机旋转时破坏/创建活动
我正在尝试编写一个程序,该程序需要在手机四处旋转时平滑方向传感器样本。每次更改手机的方向时,它都会在布局更改时中断数据并冻结程序。如何将其锁定在一个方向(横向或纵向,没关系)?
我认为它与android:layout
xml 文件有关,但我在网上找不到任何东西。
最简单的方法之一是在文件中拥有标签的android:screenOrientation="portrait|landscape"
属性。<activity>
AndroidManifest.xml
这个答案对我来说看起来很有希望([android] [screen-orientation]
在 SO 搜索框中使用)
在 java 代码中,它看起来像这样:
super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
您可以在清单文件中为特定活动使用此语法:
android:configChanges="keyboardHidden|orientation"
以上似乎对我不起作用。
我总是使用:-
setRequestedOrientation(0);
更改最后的值将提供水平/垂直锁定。不过,如果在纵向模式下,请确保捕捉到正在清单中打开的键盘,因为它可能会产生意想不到的结果。