2012-06-28 99 views
1

我已經創建了兩個文件夾佈局和layout-land兩個xml文件,一個用於縱向,另一個用於橫向。這兩個xmls的工作,但這是問題。風景和肖像android應用程序

我的第一個屏幕是一個登錄屏幕,我的第二個屏幕是一個主屏幕。如果我以縱向登錄,然後在主屏幕上打開手機橫向。該佈局將橫向旋轉,但它使用肖像xml作爲主屏幕。

同樣的錯誤,如果我在的風景開始,嘗試移動到肖像以後發生。

好像我對我的主要做什麼佈局那麼這將被用於該應用程序的其餘部分的佈局。無論如何去解決這個問題?

另外。我已經在我的清單中爲這些活動使用了android:configChanges =「orientation」。

回答

2

如果使用android:configChanges="orientation",那麼你就可以覆蓋onConfigurationChanged配置更改後膨脹的新佈局。

@Override 
protected void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig);     
    setContentView(...); 
} 

確保你有一個很好的理由,以防止活動從一個方向改變而重建......,最重要的不只是這樣做,因爲定向變化是否崩潰您的應用程序。處理配置更改可能會使其使用替代資源變得更加困難,因爲系統不會自動爲您應用它們。當您必須避免由於配置更改而重新啓動並且不推薦用於大多數應用程序時,應將此技術視爲最後的手段。

2

使用android:configChanges="orientation"意味着你將處理代碼中的方向變化。如果你想讓它自動切換佈局,你不應該在那裏。

+1

要闡述:即'configChanges'值意味着你規避Android的內置的配置更改處理(這是將切換出XML文件爲您的部分)。如果你刪除它,你需要知道你的活動將被殺死,並在新的方向上用xml文件輪換重新創建。 –

+0

是的,這就是爲什麼我把它放在那裏的原因,因爲我不希望它被殺死和重新創建。所以...我明白我在做什麼是錯誤的,但不知道該從哪裏出發 – user1424489

+0

您是否有充分的理由在第一時間使用'configChanges'?爲什麼使用它? –

0

確保兩個不同文件夾中的xml文件具有相同的名稱。