2010-01-23 131 views
115

我見過可以爲活動指定兩個單獨的佈局xml文件的引用,一個用於縱向,一個用於橫向。我還沒有找到任何有關如何做到這一點的信息。如何爲每個活動指定哪個xml文件是縱向佈局,哪個是橫向佈局?如何爲縱向和橫向定義不同的佈局?

是否也可以爲不同的屏幕尺寸指定不同的佈局?如果是這樣,這是如何完成的?

回答

169

創建一個layout-land目錄,並將橫向版本的佈局XML文件放在該目錄中。

+2

這是否意味着如果我這樣做,所有活動都需要定義橫向和縱向視圖? – 2010-01-23 19:01:52

+13

不,如果不存在佈局定義,它只是使用標準佈局目錄中的XML佈局。 – 2010-01-23 19:49:16

+0

在我的情況下,layout-land不工作,當我使用,android:configChanges =「orientation | keyboardHidden | screenSize」 – 2014-02-11 06:53:33

58

你只要把它放在與根據方向和分辨率不同的名稱單獨的文件夾,設備會自動選擇合適的一個用於其屏幕設置

此處瞭解詳情:

http://developer.android.com/guide/practices/screens_support.html

「屏幕尺寸和密度的資源目錄限定詞」

+0

僅適用於操作系統版本1.6或更高版本。如果你想支持1.5,你需要這個鏈接:http://developer.android.com/guide/practices/screens-support-1.5.html – 2011-09-19 14:13:52

+2

@Silvio Donnini - 鏈接不再具有所需的信息。 – itsaboutcode 2012-09-10 02:05:35

+2

@itsaboutcode是的,請執行以下操作:轉至「使用配置限定符」 – Danation 2012-11-02 18:11:35

2

或使用此選項:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:scrollbars="vertical" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 

    <LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

    <!-- Add your UI elements inside the inner most linear layout --> 

    </LinearLayout> 
</ScrollView> 
16

提醒您:

android:configChanges屬性,在清單xml文件中刪除orientation的活動,如果你定義它:

android:configChanges="orientation|screenLayout|screenSize" 
3

創建一個新的目錄layout-land,然後創建xml文件同名在layout-land,因爲它是layout目錄並在那裏對齊您的內容的橫向模式。

請注意,xml中的內容ID均相同。

14

對於鼠標愛好者!我說右鍵單擊資源文件夾,並添加新的資源文件,並從可用預選賽選擇方向:

enter image description here


但你仍然可以說做手工,加上子文件夾「佈局土地」

‘你的項目方向\程序\ SRC \主\ RES’

從那時起這個子文件夾下的任何layout.xml文件僅在橫向模式下工作AUT omatically

在縱向模式下使用「Layout-port」。

相關問題