【发布时间】:2012-09-10 14:39:48
【问题描述】:
我希望有 2 种不同的方向模式,具体取决于设备 - 如果设备屏幕超大,方向应该是 LANDSCAPE,如果设备屏幕较小,方向应该是 PORTRAIT 。
我做了以下检查:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Set orientation for tablets and phones
if (isXLarge()) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
setContentView(R.layout.activity_main);
}
活动的清单条目是:
<activity
android:configChanges="keyboardHidden"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoTitleBar"
android:name=".MyActivity"/>
它在手机上运行良好,但在 装有 Android 3.2 的 Motorola Xoom 平板电脑上无法正常运行。
如果我们假设平板电脑处于纵向模式,则会发生以下一系列操作:
- Activity 以纵向模式创建和显示 - 这会在视觉上显示半秒
- Activity 在横向模式下被销毁并重新创建。
问题在于,在当前物理上握持平板电脑的方向中始终存在中间转换,然后以所需方向重新创建活动。
感谢您提供有关此问题的任何信息或建议,如果您需要更多详细信息,请告诉我。
isXLarge()方法正确返回显示的类型
【问题讨论】:
标签: android screen-orientation motorola orientation-changes xoom