即使设备旋转,我也希望我的 Activity 保持启动时的方向,无论是纵向还是横向。引入了 API 级别 18 android:screenOrientation=”locked”
应该完成这项工作:将方向锁定到其当前旋转,无论它是什么。
但是,我还想支持较旧的操作系统版本。我怎样才能做到这一点?
我知道 Lock screen orientation (Android)讨论锁定 Activity 到横向模式,How do I disable orientation change on Android?讨论纵向模式下的锁定 Activity (在 Samsung Galaxy S,OS 2.3.3 上对我来说根本不起作用)。我也知道 advice recommending not to do this .
最佳答案
MainActivity.java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getResources().getConfiguration().orientation == Configuration. ORIENTATION_LANDSCAPE)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
else
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// ...
}
我还修改了 list 文件。但是,我不确定是否需要这些更改,至少 android:screenOrientation="unspecified"
无论如何是默认的 screenOrientation 值。 AndroidManifest.xml:
<activity android:name="MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="unspecified" />
关于android:screenOrientation=”locked” 在旧操作系统版本上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21361338/