Android и отображение многострочного текста в TextView в TableRow

Я показываю TableLayout со строками следующим образом:

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

Я нахожусь в этом со всем, что могу найти здесь, и могу думать, чтобы текст можно было обернуть во многих строках, но безрезультатно: текст всегда заставляют использовать одну строку, бегущую от экрана. Может показаться, что я работаю внутри TableRow здесь, и насколько я могу судить об этом, на этом сайте не рассматривался.

Итак, как заставить второй TextView переносить многие строки?

Ответ 1

TextView будет обертывать текст, если столбец, в котором он установлен, сокращается. Иногда он не завершается точно, если текст заканчивается на ",...", то он немного длиннее, чем ровно n строк.

Вот пример, TextView с id question будет завершен:

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

Ответ 2

Для полноты, вот как мой TableLayout читает в 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>

Позже я запишу это с помощью TableRow s.

Ответ 3

Возможно, попробуйте сделать следующее:

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

Я знаю, немного похож на решение "кресло-коляска", но работает для меня, хотя я также заполняю текст программно.

Ответ 4

По коду также работает:

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

1 - число столбцов.