我正在尝试动态添加和删除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>
答案 0 :(得分:1)
使用hierarchyviewer
(在您的SDK tools/
目录中)确定该行是否真的没有添加,或者是否正在添加,但是某些布局参数混乱,因此它没有出现在 - 屏幕。
答案 1 :(得分:1)
public int indexOfChild (View child)
public View getChildAt (int index)
TableLayout提供的两种方法。 ; - )