2012-07-22 42 views
0

我有一個垂直的LinearLayout (綠色矩形),我試圖以編程方式膨脹和插入多個TableLayouts (紅色矩形)這個LinearLayout中。每個桌面佈局包含4個2x2排列的單元格。對內部的LinearLayout TableLayout設置layout_marginBottom沒有效果

enter image description here

它的工作原理,只是我的TableLayout設置任何layout_marginBottom沒有效果,紅色的矩形總是緊湊的內部的LinearLayout。我想在每個表格之間創建一些垂直間距。

請建議什麼是錯我的XML:

的LinearLayout:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 
    <LinearLayout 
     android:id="@+id/levellist" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical"> 

    </LinearLayout> 
</ScrollView> 

TableLayout(動態插入)。請注意layout_marginBottom沒有任何效果:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="100dp" 
    android:stretchColumns="*" > 

    <TableRow 
     android:id="@+id/TableRow01" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <include 
      android:id="@+id/levelview0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      layout="@layout/levelmenu_level" /> 

     <include 
      android:id="@+id/levelview1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      layout="@layout/levelmenu_level" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <include 
      android:id="@+id/levelview2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      layout="@layout/levelmenu_level" /> 

     <include 
      android:id="@+id/levelview3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      layout="@layout/levelmenu_level" /> 
    </TableRow> 

</TableLayout> 

回答

0

你在這個TableLayout中有一堆視圖是相同的。我會建議嘗試使用GridLayout。它應該有助於內存管理和回收。但要回答你的問題,看起來你正在設置整個表格的邊距,而不是每一行。你有沒有試過把你的layout_margin放在你的行標記裏面?你也可以嘗試設置填充?這樣你就可以將行距放在行內。不過,我相信你應該得到相同的效果。保證金在視圖之外,填充在裏面。

http://developer.android.com/reference/android/view/View.html#attr_android:paddingBottom

<TableRow 
     android:id="@+id/TableRow01" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingBottom="???dip"> 

     <include 
      android:id="@+id/levelview0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      layout="@layout/levelmenu_level" /> 
+0

是的,我想設置每個表之間的差額,而不是每行之間。我想使用邊距而不是填充,因爲我打算爲表格使用背景圖像,並且我希望在一個背景開始和另一個背景開始之間的空白空間。我只是好奇,爲什麼我無法在桌子底部設置保證金。 – Tim 2012-07-22 18:22:05

+0

你想在每個「關卡」之間填充。而且你有一個大的桌面佈局,並在你桌子的各行中包含每個級別。因此,將您的間距移動到這些行的標記中。 – 2012-07-22 18:25:25

+0

對不起,我很感謝你的幫助,但我想你誤會了我。不,我沒有一個大桌子佈局。我有一個大的線性佈局。線性佈局包含多個表格(圖像中的每個紅色矩形都是一個表格)。每個表格包含4個單元格。我想在每個表格(不是每行)之間創建一個間距。它可能會變成一張大桌子,但這不是我要問的特定問題。 – Tim 2012-07-22 18:30:03