动态添加和删除表行 - Android

bro*_*31k 8 android

我试图动态添加和删除TableLayout中的行.

布局在xml文件中定义.

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

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

table.removeView(row);

table.addView(row);
Run Code Online (Sandbox Code Playgroud)

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

编辑:事实证明,它毕竟是添加,只是在屏幕的底部,而不是在与删除它相同的位置.

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

table.addView(row,4); // 4 happens to the the row
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何确定行的索引,似乎没有一种方法来实现这一点.有谁知道怎么做?(即如果我不知道指数是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>
Run Code Online (Sandbox Code Playgroud)

Com*_*are 1

使用hierarchyviewer(在您的 SDKtools/目录中)确定该行是否确实未添加,或者正在添加,但某些布局参数混乱,因此它没有出现在屏幕上。