2011-01-21 182 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的管理,對你,你只是管理的用戶覆蓋。