在两个TableRow之间插入一个或多个新TableRow

时间:2012-06-15 11:59:32

标签: android layout tablelayout

我正在开发一个Android应用程序。 One Activity有一个像这样的TableLayout:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ereportfillscroller"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TableLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/EReportTableLayout"
            android:layout_margin="10dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:shrinkColumns="*"  
            android:stretchColumns="*">

            <TableRow>
                <TextView
                    android:id="@+id/txtGenInfo"
                    android:layout_span="8"
                    android:layout_gravity="center_horizontal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/layout_title_general_information"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
            </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/txtPONo"
                android:layout_weight=".125"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:text="@string/layout_po_no"
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </TableRow>

        <!-- MORE ROWS -->

    </TableLayout>
        <Button
            android:id="@+id/btnPhoto"
            android:onClick="onTakeAPhotoClick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Take a photo" />

    </LinearLayout>
</ScrollView>

例如,我需要在第一行和第二行之间以编程方式插入另一个TableRow。我该怎么做=

2 个答案:

答案 0 :(得分:0)

你可以这样做:

TableLayout tl = (TableLayout) findViewById(R.id.EReportTableLayout);
tl.addView(tableRowToInsert, index);

答案 1 :(得分:0)

可以尝试addView(View child,int index)

 TableLayout tl = (TableLayout)findViewById(R.id.EReportTableLayout);
               /* Create a new row to be added. */
               TableRow tr = new TableRow(this);
               tr.setLayoutParams(new LayoutParams(
                              LayoutParams.FILL_PARENT,
                              LayoutParams.WRAP_CONTENT));
                    /* Create a Button to be the row-content. */
                    TextView textView = new TextView(this);
                   textView .setText("txt");
                   textView .setID(R.id.txtPONo_2);

                    textView .setLayoutParams(new LayoutParams(
                              LayoutParams.FILL_PARENT,
                              LayoutParams.WRAP_CONTENT));

                    tr.addView(textView );
              /* Add row to TableLayout. */
                  tl.addView (tr, index);