我有一个活动必须始终在横屏模式下启动。在我的onCreate()
方法中,我使用屏幕的尺寸(宽度和高度)来设置界面,因此很重要的是该活动最初不会以错误的方向创建。
为了做到这一点,我在清单文件中添加了以下内容:
<activity android:name="app.myapp.WideActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"/>
这在我的手机上完全正常,但在我的平板电脑(三星Galaxy Tab,Android 3.1)上,活动在纵向模式下启动并几乎立即切换方向(似乎是在
onCreate()
方法之后)。在我的手机上(Android 2.3),在调用onCreate()方法之前屏幕已经是横向的了。在onCreate()方法中添加
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
似乎没有帮助。我该怎么做才能实现我想做的事情呢?
configChanges="orientation"
,当设备切换方向时,onCreate() 方法将再次被调用,UI 将自动修复。也可以在 onCreate 方法中添加一个检查,在纵向模式下根本不绘制 UI。 - Adam Smith