studio programacion para herramientas fundamentos desarrollo con avanzado aplicaciones android textview multiline tablelayout tablerow

programacion - manual android studio avanzado



Android y visualización de texto con múltiples líneas en una vista de texto en un TableRow (5)

Estoy mostrando un TableLayout con filas de la siguiente manera:

<?xml version="1.0" encoding="utf-8"?> <TableRow xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/one" android:layout_marginLeft="10dip" android:textColor="#B0171F" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/one" android:id="@+id/two" android:layout_marginLeft="10dip" android:ellipsize="none" android:singleLine="false" android:scrollHorizontally="false" android:maxLines="10" android:textColor="@android:color/black" /> </RelativeLayout> </TableRow>

Estoy abordando esto con todo lo que puedo encontrar aquí y puedo pensar en permitir que el texto se ajuste a muchas líneas pero fue en vano: el texto siempre se fuerza a una sola línea, saliendo de la pantalla. Podría importar que esté trabajando dentro de un TableRow aquí, y hasta donde puedo decir que esto no se ha tratado en este sitio.

Entonces, ¿cómo fuerzo mi segundo TextView para ajustar a muchas líneas?


En aras de la integridad, así es como mi TableLayout dice en XML:

<TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:shrinkColumns="0" android:stretchColumns="0" android:id="@+id/summaryTable"> </TableLayout>

Más tarde puebla esto con TableRow s.


Por código también funciona:

TableLayout tablelayout = (TableLayout) view.findViewById(R.id.table); tablelayout.setColumnShrinkable(1,true);

1 es el número de columna.


Tal vez intente lo siguiente:

myTextView.setText(Html.fromHtml("On " + stringData1 + "<br> at " + strinData2);

Lo sé, se parece un poco a una solución de "silla de ruedas", pero funciona para mí, aunque también llene un texto programáticamente.


También puede usar el código a continuación

<TableRow > <TextView android:id="@+id/tv_description_heading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:padding="8dp" android:text="@string/rating_review" android:textColor="@color/black" android:textStyle="bold" /> <TextView android:id="@+id/tv_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:maxLines="4" android:padding="8dp" android:text="The food test was very good." android:textColor="@color/black" android:textColorHint="@color/hint_text_color" /> </TableRow>


TextView ajustará el texto si la columna en la que se encuentra está configurada para contraerse. A veces no se ajusta exactamente, si el texto termina con ", ...", entonces es un poco más largo que exactamente n líneas.

Aquí hay un ejemplo, la vista de texto con la question ID se ajustará:

<TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:shrinkColumns="*"> <TableRow> <TextView android:id="@+id/question" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </TableRow> </TableLayout>