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 - число столбцов.