具有统一行/列大小的Android TableLayout控件

时间:2012-08-09 18:54:16

标签: android android-layout user-interface

我正在Android中创建一个应用程序,我需要将屏幕划分为统一的行和列以填充整个屏幕。

我知道如何在HTML和WPF(以及标准GDI +)中执行此操作,但我在Android中找不到合适的控件。

我只限于Android 3.2,所以我不能使用GridLayout,看起来它可以做我想要的。

一旦我有了这个'table / grid'控件,我希望能够将Buttons,TextViews等放到单元格中,并指出它们是跨越多个列还是行。

我一直在试验TableLayout控件,但我似乎无法让列/行具有统一的大小。

我也在运行时动态构建这个网格。

是否有允许这样的控制?

谢谢, 丰富。

2 个答案:

答案 0 :(得分:0)

至少对于列宽,您可以在一行中的每个视图上设置权重:

    <TableRow>

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </TableRow>

    <TableRow>

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </TableRow>

如果你也加重了,这也可能有用,但我从未测试过。

答案 1 :(得分:0)

我通过创建一个派生自ViewGroup的新类来实现这一目标,该类以正确的方式展示我的“视图”。虽然我在查看子视图中的文本时遇到了一些问题,但效果很好。