我知道这个问题之前已经被提出过,但其他回答都没有帮助到我,所以我自己问一下...
我试图从一个 TableLayout
中删除所有现有的行,因为我想让用户能够动态更新该表。其他建议推荐使用 removeAllViews()
,即可删除所有子视图,但是这会从同一个 LinearLayout
中的其他表中删除行(我有一个包含多个表的线性布局)。
你有什么建议吗?
我知道这个问题之前已经被提出过,但其他回答都没有帮助到我,所以我自己问一下...
我试图从一个 TableLayout
中删除所有现有的行,因为我想让用户能够动态更新该表。其他建议推荐使用 removeAllViews()
,即可删除所有子视图,但是这会从同一个 LinearLayout
中的其他表中删除行(我有一个包含多个表的线性布局)。
你有什么建议吗?
看起来您可能正在对整个LinearLayout
调用removeAllViews()
,而不是要清除的特定TableLayout
。请仔细检查您是否有如下代码:
myLinearLayout.someTableView.removeAllViews()
你需要在每个TableRow上调用removeAllViews():
int count = table.getChildCount();
for (int i = 0; i < count; i++) {
View child = table.getChildAt(i);
if (child instanceof TableRow) ((ViewGroup) child).removeAllViews();
}
如果您想删除除第一行(通常用作标题)以外的所有行,可以使用以下代码:
tableLayout.removeViews(1, Math.max(0, tableLayout.getChildCount() - 1));
yourTableView.removeViews(startIndex, count)
来移除行。
startIndex 是你想要开始删除的整数值。如果你有一个表头并且不想要删除它,请从位置1开始,否则从0开始。
count 是要删除的行数。最初的回答。