/ / TableLayout se trunca cuando se coloca dentro de ScrollView - android, xml, scrollview, tablelayout

TableLayout se trunca cuando se coloca dentro de ScrollView - Android, XML, scrollview, tablelayout

Tengo un TableLayout que se llena dinámicamente con muchas filas de datos. Contiene más datos de los que puede contener la pantalla, por lo que necesito que sea desplazable.

Mi problema es que cuando coloco el TableLayout dentro de un ScrollView, parece cortar muchas filas desde la parte superior del TableLayout.

Como referencia, el código completo está aquí (la pregunta es desordenar para que quepa todo) http://pastebin.com/w7Fi3Bzz

Vea a continuación el código relacionado con el problema que estoy teniendo

Aquí está el XML sin el ScrollView:

        <TableLayout
android:orientation="vertical"
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_horizontal"
android:id="@+id/tbl_statistics"
android:stretchColumns="*"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
>
</TableLayout>

Y cómo se ve:

enter image description here

Y aquí está el mismo XML con un ScrollView adjunto:

<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
>

<TableLayout
android:orientation="vertical"
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_horizontal"
android:id="@+id/tbl_statistics"
android:stretchColumns="*"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
>
</TableLayout>

</ScrollView>

Y así es como se ve la tabla, puede ver que la parte superior de la tabla se truncó (se rellena con los mismos datos exactos):

enter image description here

Encontré un problema similar aquí LinearLayout no se expande dentro de una Vista de desplazamiento, pero las respuestas no me ayudaron.

Respuestas

2 para la respuesta № 1

En tus diseño actual:

  1. retirar android:layout_gravity="center" desde el TableLayout elemento.

  2. Añadir android:layout_weight="1" al ScrollView elemento.

  3. Limpia y reconstruye tu proyecto.

Además, el fillViewport atributo solo funciona en ScrollViews.


2 para la respuesta № 2

Resolví el mismo problema solo insertando TableLayout en LinearLayout, que es solo hijo de ScrollView. Probé todas las demás variantes sin éxito (fillViewport para ScrollView, android:layout_weight="1" para TableLayout)

solía TableLayout para insertar dinámicamente Views lo

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<TableLayout
android:id="@+id/activity_displayFields_tableLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp" />
</LinearLayout>
</ScrollView>