2011-01-21 121 views
2

我目前正在根据屏幕方向处理具有不同行为的Android应用程序。我使用getWindowManager()。getDefaultDisplay()。getRotation()来获取onCreate()方法中的屏幕方向,并从那里进行管理。Android - 处理屏幕方向

基本上,我的问题是我需要对方向进行控制。在横向模式下,当用户决定它时,应用程序必须切换到纵向模式,并保持这种状态,但直到用户进入纵向模式,然后再次进入横向模式。

我使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)更改横向时的方向。问题是,用这个,我不能回到风景。 如果我使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)中的onCreate(),问题是,在几秒钟后自动切换回横向模式(因为屏幕仍处于横向)。

是否有任何其他方式来管理?基本上,有没有办法使用列表程序(或在onCreate以外的任何位置捕捉屏幕方向更改,因为在视图模式下锁定视图时不会调用它)?我找不到任何关于...

任何想法是欢迎的!

谢谢!

+0

这可能有所帮助:http://stackoverflow.com/questions/4349353/intent-for-screen-orientation-change/4349364#4349364 – 2011-04-05 11:53:59

回答

2

为什么不尝试创建两个布局,一个在layout-land中,另一个在layout-port中。这些将在设备方向更改时自动应用。

在其中的每一个中,为纵向视图创建两个不同的子布局,并为横向视图创建两个不同的子布局,并更改这些布局的可见性以反映用户的偏好。

所以,你并不需要在所有办理旋转变化,让Android的管理,对你,你只是管理的用户覆盖。