Adición dinámica y eliminación de filas de tabla – Android

Estoy intentando añadir dinámicamente y quitar filas de un TableLayout.

El diseño se define en un archivo xml.

Puedo quitar con éxito una fila, pero cuando llamo el comando addView correspondiente nada sucede.

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

Esto se traduce en una fila que se quita, pero no se agrega de nuevo.

Editar: Resulta que estaba agregando si después de todo, sólo en la parte inferior de la pantalla en lugar de en la misma ubicación de la que fue eliminado.

Puedo agregarlo en la posición correcta especificando el índice:

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

Pero no puedo averiguar cómo determinar el índice de la fila, no parece ser un método para lograr esto. ¿Alguien sabe cómo hacerlo? (Es decir, si no sabía que el índice era 4, ¿cómo podría deducirlo)

Editar: XML incluido. Esta es sólo la fila en cuestión, hay otras filas por encima y por debajo de él

 <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> 

Utilice hierarchyviewer (en su directorio tools/ SDK) para determinar si la fila no se agrega realmente o si se está agregando, pero algunos parámetros de diseño están desordenados y, por lo tanto, no aparecen en la pantalla.

 public int indexOfChild (View child) public View getChildAt (int index) 

Ambos métodos proporcionados por TableLayout. D

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.