动态添加和删除表格行 - Android

8

我试图动态地向TableLayout中添加和删除行。

该布局在xml文件中定义。

我能够成功地删除一行,但是当我调用相应的addView命令时,没有任何反应。

table = (TableLayout)findViewById(R.id.table);
row = (TableRow)findViewById(R.id.row);

table.removeView(row);

table.addView(row);

这会导致一行被删除,但不会再次添加。

编辑:结果它确实被添加了,只是在屏幕底部而不是与之前相同的位置。

通过指定索引,我可以将它添加到正确的位置:

table.addView(row,4); // 4 happens to the the row

但是我不知道如何确定行的索引,似乎没有一种方法可以完成这个任务。有人知道怎么做吗?(例如,如果我不知道索引是4,我怎么能找出来)

编辑:包括XML。这只是问题行,上下还有其他行。

<TableRow android:id="@+id/row">

        <TextView android:id="@+id/field1"
            android:text="testing"
        android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:textStyle="bold"
            android:textSize="18dip"
        />


        <TextView android:id="@+id/field2"
            android:padding="3dip"
            android:text="test"
            android:textSize="18dip"
            android:gravity="right"
        />



    </TableRow>

你的代码在测试布局中运行良好。我想看看你的XML布局以进一步评论。 - bhatt4982
你在问题行上方和下方都有行吗? - brodie31k
2个回答

1
public int indexOfChild (View child) 

public View getChildAt (int index) 

TableLayout 提供的两种方法都可以使用。;-)


1
使用位于SDK工具目录下的,确定行是否真的没有被添加,或者是被添加了但某些布局参数出现问题,因此没有显示在屏幕上。

这里并没有帮上忙,但感谢提醒我之前没有看过HierarchyViewer。 - brodie31k

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接