我想允许用户更改允许 Android 以纵向或横向显示的选项。我所做的是允许用户设置首选项,然后将其强制应用到程序中。
在这一点上,我在里面使用这样的代码onCreate
:
prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (prefs.getBoolean("landscapeModeEnabled", false)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onCreate(savedInstanceState);
现在的问题是,如果屏幕不是“强制”方向,它会创建两次 Activity 。也就是说,如果用户想要横向,默认(纵向)方向的手机将加载屏幕两次。
我知道我可以使用 XML 进行设置,但这不允许用户更改方向的偏好。
如果这很重要,我正在使用SherlockFragmentActivity
来自Action Bar Sherlock的产品。