在平板电脑上强制横向模式

时间:2012-02-16 01:00:03

标签: android

我的活动必须始终以横向模式启动。在我的onCreate()方法中,我使用屏幕的尺寸(宽度和高度)来设置界面,因此最初创建的活动不是以错误的方向创建的。

为此,我在清单中有以下内容:

<activity android:name="app.myapp.WideActivity"
     android:screenOrientation="landscape"
     android:configChanges="keyboardHidden|orientation"
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"/>            

这似乎在我的手机上完全正常,但在我的平板电脑(三星Galaxy标签,android 3.1)上,活动以纵向模式启动并几乎立即切换方向(在onCreate()方法之后 - 似乎) 。在我的手机(android 2.3)上,在调用onCreate()方法之前,屏幕已经是横向。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 置于onCreate()方法似乎没有帮助。我怎样才能实现我想要做的事情?

1 个答案:

答案 0 :(得分:0)

我不确定您是否可以解决确切的问题。对我来说,问题在于三星实施活动/窗口管理框架部分。 但是,您可以尝试通过延迟渲染来防止出现糟糕的UI。

在onCreate()中显示一些默认布局 - 只是一个拉伸到整个屏幕的纯黑色布局。 在onResume()中检查屏幕方向,如果它不是横向,那么你发布一个延迟的runnable,它将应用你的布局(setContentView(my_UI))。 在runnable内部,您还可以检查屏幕方向是否为横向,如果方向仍然是纵向,则重新发布runnable,否则设置UI。