2012-05-04 50 views
3

我有我的應用程序約15個活動。現在我知道一種防止旋轉活動的方法,即覆蓋onConfigurationChanged()方法並在xml中定義它。如何防止所有活動屏幕在Android中旋轉

因爲我有大約15-20個活動覆蓋每個人都不是我認爲的最佳實踐。那麼還有其他方法可以做到這一點嗎?爲要限制每個活動

android:screenOrientation="portrait" 

+0

你想修復方向嗎?如將其限制爲縱向或橫向?那是你想要做的嗎? – Ghost

+0

它應該是肖像 – NullPointerException

+0

你可以查看我的答案以作進一步參考。 – Ghost

回答

3

你可以在你的清單中添加這一點。也適用於「風景」。

+0

但我要說的是你必須寫每個標籤..所以有什麼其他方式我問..像寫作課? – NullPointerException

0

在您的清單補充一點:

<activity android:screenOrientation="portrait"></activity> 
3

檢查this。如果要限制方向,清單文件的activity標記內的此屬性可以創造奇蹟。爲了進一步參考,以下是非常重要的:

注意:當你聲明的橫向或縱向的一個值,它是 考慮其中 活動運行方向的硬性要求。因此,您聲明的值可以通過 服務(如Google Play)進行過濾,因此您的應用程序僅可用於支持您活動所需方向的 設備。對於 示例,如果您聲明「風景」,「reverseLandscape」或 「sensorLandscape」,那麼您的應用程序將僅可用於支持橫向導向的設備 。但是,您還應該 明確聲明您的應用程序需要肖像或 橫向方向與<uses-feature>元素。例如, <uses-feature android:name="android.hardware.screen.portrait"/>。此 純粹是Google Play提供的過濾行爲(以及支持它的其他 服務),而平臺本身不控制 您的應用是否可以在設備僅支持某些 方向時安裝。

這是開發者網站本身提供的規範。因此,如果你限制你的應用只能在縱向進行,也建議使用下面的標籤在你的清單,只是activity標記之前:

<uses-feature android:name="android.hardware.screen.portrait"/> 
2

提供的清單項@Stuart是在你的具體例子中最好的選擇。

一般來說,爲避免重複每個活動的代碼,我會定義自己的類來擴展Android Activity並在其onCreate()中執行所需的初始化。然後,我的每項活動都會擴展我的擴展,而不是直接由Android提供的活動。

+0

雅這一個我曾經想過它..好 – NullPointerException