2012-03-04 23 views
2

我正在製作一個以縱向方向開始的簡單屏幕。第一次切換到橫向方向後,它可以很好地工作。 儘管當我嘗試切換回肖像時,屏幕仍保持橫向。第一回合後Android的方向不會改變

發生了什麼事情的任何想法?即 「一」 活動

清單代碼

<activity 
      android:name=".LoginActivity" 
      android:label="Login" 
      android:configChanges="orientation|keyboardHidden|keyboard" > 
      <intent-filter> 
       <action android:name="com.DCWebMakers.Vairon.LOGINACTIVITY" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
+1

這個XML表示您的應用程序將負責定位更改。因此,在您這樣做的地方顯示代碼會更有幫助。 Althoug如果你的目標是API 13+,你也應該處理screenSize – 2012-03-04 01:42:21

+0

我的活動沒有處理方向變化,這是否導致它保持橫向? – Vairon 2012-03-05 00:24:47

回答

2

你的清單是騙Android系統。您的android:configChanges指出您的應用將處理方向更改,但事實並非如此。 Docs

安卓configChanges

列出配置更改該活動將處理本身。當運行時發生配置更改時,該活動默認關閉並重新啓動,但使用此屬性聲明配置將會阻止活動重新啓動。相反,該活動仍在運行,並調用onConfigurationChanged()方法。

注意:使用此屬性應該避免並僅用作最後的手段。請閱讀Handling Runtime Changes以瞭解有關如何正確處理由於配置更改而導致的重新啓動的更多信息。

0

有一個已知的long-standing emulator bug,表現出這種一次性開關行爲 - 所以如果您使用模擬器,這可以解釋問題。

爲了解釋第一定向開關,我會認爲,要麼:

  1. 你不是真正的LoginActivity當你做了開關,但另一項活動是沒有configChanges="orientation...標誌設置。

  2. 或者,也許您在啓動應用程序之前(例如從主屏幕)更改了方向。然後,您的應用程序在橫向上啓動,並且在嘗試更改方向時不會響應。