我正在显示一个带有行的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换行到多行?
答案 0 :(得分:98)
如果文本的列设置为缩小,TextView将包装文本。有时它不会完全包裹,如果文本以“,...”结尾,那么它比n行更长一点。
以下是一个示例,标识为question
的TextView将换行:
<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>
答案 1 :(得分:14)
为了完整起见,这就是我的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填充此内容。
答案 2 :(得分:3)
按代码也有效:
TableLayout tablelayout = (TableLayout) view.findViewById(R.id.table);
tablelayout.setColumnShrinkable(1,true);
1是列数。
答案 3 :(得分:2)
也许尝试如下:
myTextView.setText(Html.fromHtml("On " + stringData1 + "<br> at " + strinData2);
我知道,看起来有点像“轮椅”解决方案,但对我有用,不过我也会以编程方式填写文本。
答案 4 :(得分:0)
您也可以使用以下代码
<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>