在TableLayout中插入垂直行

时间:2010-11-19 20:04:37

标签: android

我正在尝试向Android中的TableLayout添加行,而orientation属性似乎不起作用。基本上我需要创建一个TableRow,向其添加多个TextView,添加到TableLayout并将TextView垂直堆叠而不是水平堆叠。

XML看起来像这样:

<TableLayout android:id="@+id/mylayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <TableRow  android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
            <TextView android:text="Test1"></TextView>
            <TextView android:text="Test2"></TextView>
    </TableRow>
</TableLayout>

这似乎应该可以工作,但TextViews最终从左到右堆叠。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

尝试更改

        <TextView android:text="Test1"></TextView>
        <TextView android:text="Test2"></TextView>

为:

        <TextView android:text="Test1" android:layout_column="0"></TextView>
        <TextView android:text="Test2" android:layout_column="0"></TextView>

请参阅文档TableLayouthttp://developer.android.com/reference/android/widget/TableLayout.html

  

必须以递增的列顺序将单元格添加到行中,包括代码和XML。列号从零开始。如果没有为子单元格指定列号,它将自动增加到下一个可用列。如果跳过列号,则该行将被视为空单元格。有关使用XML创建表的示例,请参阅ApiDemos中的TableLayout示例。

答案 1 :(得分:1)

We can do by inserting TableLayout inside TableRow,like this.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TableLayout android:id="@+id/mylayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <TableRow  android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TableLayout android:id="@+id/mylayout1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical">
            <TextView android:text="Test1"></TextView>
            <TextView android:text="Test2"></TextView>
            </TableLayout>
        </TableRow>
    </TableLayout>
  </LinearLayout>

答案 2 :(得分:0)

我找到了解决这个问题的方法。我创建了一个RelativeLayout,我正在以编程方式为每个垂直行添加垂直方向LinearLayout。我保留了最后插入的控件ID的句柄LinearLayout并在该ID的右侧插入新的。感觉有点kludgy,但它的确有效。

答案 3 :(得分:0)

创建一个垂直方向的LinearLayout,并在其中包含文本视图。然后将此LinearLayout添加到TableRow

<TableLayout android:id="@+id/mylayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <TableRow  android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
             <LinearLayout
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:orientation="vertical" >
                     <TextView android:text="Test1"></TextView>
                     <TextView android:text="Test2"></TextView>
             </LinearLayout>
    </TableRow>
</TableLayout>