Android,并在TableRow的TextView中显示多行文字

我正在显示一个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> 

我正在用我在这里find的所有东西来打这个东西,可以想到允许文本在多行上打包,但无济于事:文本总是被强制为一行,从屏幕上跑出来。 这可能是我在TableRow里面工作,据我所知,这个网站上没有处理。

那么,如何强制我的第二个TextView换行呢?

如果TextView设置为缩小,则TextView将包装文本。 有时候,如果文本以“,…”结尾,那么它不会完全包裹,然后比n行恰好长一点。

下面是一个例子,带有id 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> 

为了完整起见,这是我的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填充这个。

也许尝试如下:

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

我知道,看起来有点像“轮椅”的解决scheme,但为我工作,虽然我也以编程方式填写文本。

通过代码也可以工作:

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

1是列数。