我有一个Android应用程序已经处理方向的变化,即清单中有android:configChanges="orientation"
和活动中的onConfigurationChange()
处理程序切换到适当的布局并进行准备。我有一个风景/肖像版本的布局。如何在对话框打开时处理屏幕方向更改?
我面对的问题是,活动有一个对话框,当用户旋转设备方向时可以打开对话框。我也有对话的风景/肖像版本。
我应该着手改变对话框的布局或者锁定活动的旋转,直到用户关闭对话框。
锁定应用程序的后一个选项对我有吸引力,因为它省去了在对话框中做任何特殊的操作。我假设一个对话框打开时,我可能会禁用的方位,如
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
,然后当它驳回
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
那会是一个明智的事是什么?如果屏幕方向在锁定时发生了变化,它会在解锁时立即感应到方向变化吗?
有替代品吗?
我认为如果用户在显示对话框时无法旋转屏幕,这将会是一种奇怪的用户体验。 – Flo 2011-04-08 10:01:22
可能但他们很快就会学会不这样做。在打开对话框的同时进行旋转意味着保存对话框状态,解除对话框,再次打开对话框,并将原来位于onCreateDialog中的所有逻辑放入onPrepareDialog中,最后恢复状态。有点乱。 – locka 2011-04-08 11:10:37
当然,他们可以学习它,但是当我使用应用程序时,我希望它适合Android的整体体验。标准Android应用程序的整体体验并不妨碍我随时随地旋转我的设备。当然,更容易阻止旋转,但用户不关心它是否更容易实现,他们只对应用程序的行为感兴趣。只是我2美分。 – Flo 2011-04-08 11:29:05