我有一个垂直的LinearLayout (绿色矩形),我正在尝试以编程方式膨胀并将多个TableLayouts (红色矩形)插入此LinearLayout。每个tablelayout包含2个2x2排列的4个单元格。
除了我为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 :(得分:0)
这个TableLayout中有一堆视图是相同的。我建议尝试使用GridLayout。它应该有助于内存管理和回收。但要回答你的问题,看起来你正在为整个表设置边距,而不是每一行。您是否尝试将layout_margin放在行标记中?您也可以尝试设置Padding?这样你就可以将行间距放在行内。但是,我相信你应该得到同样的效果。边距位于视图之外,填充在内部。
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" />