jam*_*esh 12 android preferences screen-orientation
我有一个应用程序,显示大量的文本供用户阅读.
我发现躺下时读书时,即使我的头和屏幕对齐,我仍然对屏幕旋转感到恼火.
我不想将它设置为永久处于纵向模式,所以我认为这将排除设置的方法
android:screenOrientation="portrait"
Run Code Online (Sandbox Code Playgroud)
在清单中.
理想情况下,我想通过首选项页面启用/禁用自动方向更改.
什么是我最好的方法?
ian*_*sme 18
我会通过让我的首选项页面写入我的应用程序的SharedPreferences,然后读取此值并在加载或显示有问题的文本视图时从代码调用Activity.setRequestedOrientation()来实现此目的.
例如:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (prefs.getBoolean("fix_orientation_to_portrait", false)) {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
Run Code Online (Sandbox Code Playgroud)
这可以是onCreate()或者onResume()方法.不在方法中使用它的唯一原因onCreate()是,如果在此活动中更改了设置,或者在完成后将返回到此活动的子活动.
编辑:
好吧,如果这不起作用(我不确定它会),也许你可以尝试使用两个不同的布局xml文件 - 一个设置screenOrientation,另一个没设置.加载活动/视图时,您可以根据保存的首选项动态加载其中一个.这是令人讨厌的不干净,但它应该工作.
| 归档时间: |
|
| 查看次数: |
11312 次 |
| 最近记录: |