android中的表格布局(span / shrink)?

时间:2013-04-11 01:28:02

标签: android html layout android-tablelayout

我想要这个特殊的表格布局:

Layout of table

在我目前的布局中,较短的单元格与具有长文本的单元格大小相同:

wrong layout

怎么做呢?

它应该看起来像第一张照片。

2 个答案:

答案 0 :(得分:2)

可能有更好的方法,我实际上之前没有使用过TableLayout,但下面的XML给出了你要求的基本布局:

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_span="4"
                android:layout_weight="1"
                android:text="Text"
                android:gravity="center" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.25"
                android:text="Text" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_span="3"
                android:layout_weight="0.75"
                android:text="Text that is longer than other cells" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.25"
                android:text="Text" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.25"
                android:text="Text" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.25"
                android:text="Text" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.25"
                android:text="Text" />
        </TableRow>
    </TableLayout>

答案 1 :(得分:0)

Yojimbo,你是对的,但如果你使用

  

机器人:layout_weight

你必须记住用

替换(在这种特殊情况下)android:layout_width =“ wrap_content
  

android:layout_width =“ 0dp ”。

Here你有一个很好的参考。