为什么我不能在表格布局中将文本行与图像行混合?

时间:2012-11-29 15:23:08

标签: android textview row tablelayout

我的主要活动Android .xml表布局是一个简单的图像表,3列乘4行。一切都设置为match_parent宽度,高度和重量1,这在GUI编辑器中略有错误,但在我的手机上没问题。

如果我然后在底行之前的.xml中添加一行来添加文本标签,它或者根本不渲染行,或者在稍微戳之后渲染文本但是切断底部的最后一行。

以下是.xml,长篇大论,但非常简单和重复。

<TableLayout
    android:layout_gravity="bottom"
    android:layout_weight="1"
    android:stretchColumns="*"       
    android1:layout_width="match_parent"
    android1:layout_height="match_parent"
    android1:layout_alignParentBottom="true"
    android1:layout_alignParentLeft="true"
    android1:layout_alignParentRight="true"
    android1:layout_alignParentTop="true" >

    <TableRow
        android1:id="@+id/tableRow1"
        android1:layout_width="match_parent"
        android1:layout_height="match_parent"
        android1:layout_weight="1" >

        <ImageView
            android1:id="@+id/x2"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:clickable="true"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_2x"
            android1:tag="2" />

        <ImageView
            android1:id="@+id/x3"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_3x"
            android1:tag="3" />

        <ImageView
            android1:id="@+id/x4"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_4x"
            android1:tag="4" />

    </TableRow>

    <TableRow
        android1:id="@+id/tableRow3"
        android1:layout_width="match_parent"
        android1:layout_height="match_parent"
        android1:layout_weight="1" >

        <ImageView
            android1:id="@+id/x5"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_5x"
            android1:tag="5" />

        <ImageView
            android1:id="@+id/x6"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_6x"
            android1:tag="6" />

        <ImageView
            android1:id="@+id/x7"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_7x"
            android1:tag="7" />

    </TableRow>

    <TableRow
        android1:id="@+id/tableRow4"
        android1:layout_width="match_parent"
        android1:layout_height="match_parent"
        android1:layout_weight="1" >

        <ImageView
            android1:id="@+id/x8"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_8x"
            android1:tag="8" />

        <ImageView
            android1:id="@+id/x9"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_9x"
            android1:tag="9" />

        <ImageView
            android1:id="@+id/x10"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="SetTable"
            android1:padding="5dp"
            android1:scaleType="fitCenter"
            android1:src="@drawable/menu_10x"
            android1:tag="10" />

    </TableRow>

    <TableRow
        android1:id="@+id/TableRow01"
        android1:layout_width="match_parent"
        android1:layout_height="match_parent"
        android1:layout_weight="1" >

        <TextView
            android1:id="@+id/TextView02"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_span="2"
            android1:layout_weight="1"
            android1:text="Left two buttons"
            android1:textColor="#000000"
            android1:textSize="16dp"
            android1:textStyle="normal" />

        <TextView
            android1:id="@+id/textView1"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:text="Right button"
            android1:textColor="#000000"
            android1:textSize="16dp"
            android1:textStyle="normal" />

    </TableRow>

    <TableRow
        android1:id="@+id/TableRow5"
        android1:layout_width="match_parent"
        android1:layout_height="match_parent"
        android1:layout_weight="1" >

        <ImageView
            android1:id="@+id/ImageView07"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="LaunchPR"
            android1:scaleType="fitCenter"
            android1:src="@drawable/pushbutton_1"
            android1:tag="1" />

        <ImageView
            android1:id="@+id/ImageView08"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="LaunchPR"
            android1:scaleType="fitCenter"
            android1:src="@drawable/pushbutton_1"
            android1:tag="2" />

        <ImageView
            android1:id="@+id/ImageView09"
            android1:layout_width="match_parent"
            android1:layout_height="match_parent"
            android1:layout_weight="1"
            android1:onClick="LaunchPR"
            android1:scaleType="fitCenter"
            android1:src="@drawable/pushbutton_2"
            android1:tag="3" />

    </TableRow>

</TableLayout>

1 个答案:

答案 0 :(得分:0)

如果您将TableLayout设置为填充父级(match_parent),则不需要layout_weight属性。如果您计划让layout_weight垂直占据相等的空间(例如,如果您有4行,那么您需要使用TableRows(在TableRows上)在android:weightSum="4"上设置TableLayout,在android:layout_weight="1"设置TableRows以设置四个大小相同的垂直行(填充屏幕)。)

此外,android:stretchColumns="*"属性会拉伸所有表格的列,因此您不需要TableRow的子项上的layout_weight。