【发布时间】:2016-08-31 13:03:24
【问题描述】:
根据产品要求,我必须将应用的方向保持为移动设备的纵向和平板电脑的横向。
在调用super.onCreate()之前,使用以下代码为onCreate()回调中的每个活动设置方向
public static void updateOrientation(Activity activity) {
boolean hasAPI18 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
if (isTablet()) {
activity.setRequestedOrientation(hasAPI18 ? ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
} else {
activity.setRequestedOrientation(hasAPI18 ? ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
移动工作场景:
- 让设备保持纵向
- 打开应用程序
- 执行事件以显示对话框
结果:在纵向活动中,对话框以纵向模式正常显示。
移动错误场景:
- 让设备保持横向
- 打开应用程序
- 执行事件以显示对话框
结果:在纵向活动中,对话框以横向模式显示,因此只有 2/3 部分的对话框可见。
已验证:
- 在移动设备上显示对话框时,活动方向和窗口方向设置为纵向。
【问题讨论】: