2
我想让用户更改允许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);
现在的问题是,它创建的活动两次如果屏幕是不是在“逼”的方向。也就是说,如果用户想要横向显示,默认(人像)方向的手机会将屏幕加载两次。
我知道我可以使用XML进行设置,但这不会允许用户更改方向的首选项。
我使用SherlockFragmentActivity
从Action Bar Sherlock,如果有问题。
这听起来像它会工作,但我宁愿去与不需要双倍的活动:) – Muz 2013-02-18 05:56:20
Eww。你想要这个属性的所有活动?如果你的活动方向不固定,那么用户可以按他喜欢的方式使用你的应用程序(土地/港口)。你甚至不需要给他一个偏好选项。如果您可以照顾不同方向的布局。 – 2013-02-18 06:03:07