0

我有一个垂直的 LinearLayout (绿色矩形),我正在尝试以编程方式将多个 TableLayouts (红色矩形)膨胀并插入到这个 LinearLayout 中。每个表格布局包含 4 个 2x2 排列的单元格。

在此处输入图像描述

它可以工作,除了我为 TableLayout 设置的任何 layout_marginBottom 都没有效果,红色矩形总是紧紧地挤在 LinearLayout 内。我想在每个表之间创建一些垂直间距。

请建议我的 XML 有什么问题:

线性布局:

<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>
4

1 回答 1

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" />
于 2012-07-22T18:19:38.513 回答