2012-06-15 2 views
2

Я разрабатываю приложение для Android. Одна активности имеет TableLayout как этот:Вставьте один или несколько новых TableRow между двумя TableRow

<?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 программно между первой и второй строкой. Как я могу это сделать =

ответ

0

Вы можете сделать это следующим образом:

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

можно попробовать addView (Вид ребенка, внутр индекс)

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); 
+0

это добавит строку в таблицу, но в последний не находится между строк, в которые я хочу вставить. –

Смежные вопросы