我有一個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