2012-04-24 104 views
2

仔細閱讀Android文檔約setRequestedOrientation我發現:設置屏幕方向變得可見

  • 更改本次活動的所需方向。如果活動當前處於前臺或以其他方式影響屏幕方向,則屏幕將立即更改(可能導致活動重新啓動)。否則,這將在下次活動可見時使用。

「否則,這將在下一次活動可見時使用。」 聲音很棒 - 只在活動變得可見之前設置。 OOOps。在哪裏打電話?其實在onCreate之前,我們沒有參考活動。那麼如何設置屏幕方向?

更新: - 我的想法是直接創建活動與所需的方向。當用戶從設置中選擇方向 - 設置屏幕方向和之後開始的所有活動時 - 如果他們使用來自清單/的值,則知道所需的方向/喜歡。如果我知道所需的方向 - 沒有理由創建活動,設置方向並重新創建。

+0

你只是試圖強制你的活動/應用程序的屏幕方向是特定的東西(風景,肖像)?如果是這樣,您可以在Android Manifest中指定該信息。 – Gophermofur 2012-04-24 13:08:26

+0

爲什麼不嘗試將它作爲onCreate中的第二行來查看它是否有效?如果我試圖回答你的問題,那就是我所要做的。 – mwengler 2012-04-24 13:22:56

+0

希望你現在已經解決了這個問題。我的評論是投票下來的答案。沒有更新,您的原始問題沒有說明您嘗試根據用戶偏好設置方向。而舊的答案是基於你投票的結果。 – Hassan 2013-10-02 08:44:08

回答

-1

如果你想將屏幕方向的活動中使用該剪斷你的AndroidManifest.xml文件

<activity android:screenOrientation="portrait" android:name="MyActivity"></activity> 

<activity android:screenOrientation="landscape" android:name="MyActivity"></activity> 
+0

開始前我不知道方向。這取決於用戶選擇的配置。 – Kostadin 2012-04-24 13:27:17

0

似乎prefectly合理把它在OnCreate。

http://russenreaktor.wordpress.com/2010/01/03/solved-set-screen-orientation-programmatically/

如果不工作,你可以嘗試把它在onPostCreate(束)覆蓋方法。

保護無效onPostCreate(捆綁savedInstanceState)

因爲:當活動啓動完成後調用的API等級1(後在onStart()和onRestoreInstanceState(包)已被調用)。應用程序通常不會實現這種方法;它旨在讓系統類在應用程序代碼運行後進行最終初始化。

派生類必須調用超類的此方法的實現。如果他們不這樣做,就會拋出異常。