2011-06-30 55 views
1

我想將我的屏幕分成4個相同的區域,如。四個區域中的每一個都是線性佈局。新手:如何在我的情況下設置相對佈局的屬性?

我試圖用相對佈局可承載四個線性佈局象下面這樣:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:id="@+id/up_left_area" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="#ffff66" 
    > 
     <TextView 
      android:id="@+id/label1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="UP LEFT"/> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/up_right_area" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"  
     android:layout_toRightOf="@id/up_left_area" 
     android:background="#ccffff"> 

     <TextView 
      android:id="@+id/label2" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="UP RIGHT"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/down_left_area" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/up_left_area" 
     android:background="#66cc33" 
     > 

     <TextView 
      android:id="@+id/label3" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="DOWN LEFT"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/down_right_area" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/up_right_area" 
     android:layout_toRightOf="@id/down_left_area" 
     android:background="#cc6600"> 

     <TextView 
      android:id="@+id/label4" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="DOWN RIGHT"/> 
    </LinearLayout> 
</RelativeLayout> 

有了上面的XML佈局代碼,我得到屏幕上的4個區域,但他們等量。如何修改我的代碼在屏幕上有同等大小的4個區域

+0

提示:如果'TextViews'旁邊的'LinearLayout'內沒有其他內容,您可以考慮重構代碼以將'TextViews'直接放在'RelativeLayout'中。 – Adinia

回答

4

您可以使用具有相同layout_weight = 1的線性佈局。

簡化XML:

- linearlayout orientation=vertical, layout_width=fill_parent, layout_height=fill_parent 
-- linearLayout orientation=horizontal, layout_weight=1, layout_width=fill_parent, layout_height=fill_parent 
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent 
-- -- -- .... LEFT TOP 
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent 
-- -- -- .... RIGHT TOP 
-- linearLayout orientation=horizontal, layout_weight=1, layout_width=fill_parent, layout_height=fill_parent 
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent 
-- -- -- .... LEFT BOTTOM 
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent 
-- -- -- .... RIGHT BOTTOM 

...類似的東西。

1

我建議你使用LinearLayout作爲根佈局。您可以選擇,定位將是vertical還是horizontal,但我認爲這不重要。然後創建兩個LinearLayouts並將它們的android:layout_height(如果方向爲垂直)或android:layout_width(如果方向爲水平)屬性設置爲fill_parent,並將它們的android:layout_weight屬性設置爲"1"。這樣你就可以將屏幕分成兩部分。你應該做同樣的事情,將這兩部分分成兩部分。希望這可以幫助!

2

如果你想使用RelativeLayout作爲根佈局,一招可以添加

<FrameLayout 
    android:id="@+id/center_of_screen" 
    android:layout_height="1px" 
    android:layout_width="1px" 
    android:layout_centerInParent="true"></FrameLayout> 

所以,你會知道屏幕的中心,然後對齊的toRightOf, toLeftOf, below 4個LinearLayouts使用組合above layout atributes :)。

相關問題