Android中的多行TextView?

我在xml如下所示

 <TableRow> <TextView android:id="@+id/address1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left" android:maxLines="4" android:singleLine="false" android:text="Johar Mor, Gulistan-e-Johar, Karachi" > </TextView> </TableRow> 

它不适用于multiline ,我正在使用TableLayout

所以我在这里做错了什么?

如果您在TextView放置的文本很短,则不会自动展开为四行。 如果您希望TextView 始终有四行,而不pipe文本的长度如何,请设置android:lines属性:

 <TextView android:id="@+id/address1" android:gravity="left" android:layout_height="fill_parent" android:layout_width="wrap_content" android:maxLines="4" android:lines="4" android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."></TextView> 

我试图评论上面的答案之一,但我没有足够的声誉。
我只是想我会补充说,如果你使用:

android:inputType="textMultiLine"

然后视图停止点击。 我试图在我的幻灯片菜单中显示多行文字,这显然需要响应点击。

android:singleLine="false"虽然工作正常。

我不喜欢这个答案。 只需设置inputType,TextView将适应其内容

 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textMultiLine"/> 

testingNexus One(2.3)和Nexus 4(4.4)

只需在ScrollView中添加textview即可

 <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:layout_marginTop="20dp" android:fillViewport="true"> <TextView android:id="@+id/txtquestion" android:layout_width="fill_parent" android:layout_height="match_parent" android:background="@drawable/abs__dialog_full_holo_light" android:lines="20" android:scrollHorizontally="false" android:scrollbars="vertical" android:textSize="15sp" /> </ScrollView> 

我不喜欢强制文本视图中的行数的解决scheme。 我宁愿build议你通过这里提出的解决scheme解决它。 正如我所看到的OP也努力使文本视图看起来像表中正确的和shrinkColumns是正确的指令传入实现所需。

只需在文本中添加“\ n”即可,无需额外的属性:)

  <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Pigeon\nControl\nServices" android:id="@+id/textView5" android:layout_gravity="center" android:paddingLeft="12dp"/> 

我学到的是在你想要刹车的词语之间join“\ n”到下一行。 例如…

 <TextView android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" android:text="MF 9am-5pm \n By Appointment Only" /> 

下午5点和下午之间\ n允许我更多的控制我想要我的下一行开始和结束。

我发现多行TextView的最佳答案是:

 android:inputType="textMultiLine" 

我用了:

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

它为我工作。 1是列数。

尝试使用EditText使其不可点击和不可聚焦,也可以显示滚动条并删除EditText的underbar。
这里是一个例子:

 <EditText android:id="@+id/my_edit_text" android:layout_width="match_parent" android:layout_height="wrap_parent" android:inputType="textMultiLine" <!-- multiline --> android:clickable="false" <!-- unclickable --> android:focusable="false" <!-- unfocusable --> android:scrollbars="vertical" <!-- enable scrolling vertically --> android:background="@android:color/transparent" <!-- hide the underbar of EditText --> /> 

希望这可以帮助 :)

首先用它的Html等值"&lt;br&gt;"replace"\n" "&lt;br&gt;" 然后在string上调用Html.fromHtml() 。 按以下步骤操作:

 String text= model.getMessageBody().toString().replace("\n", "&lt;br&gt;") textView.setText(Html.fromHtml(Html.fromHtml(text).toString())) 

这完美的作品。

为什么不声明一个string,而不是在布局文件中写入长行。 为此,你必须在布局文件'android:text =“@ string / text”'中声明一行代码,然后进入\\ app \ src \ main \ res \ values \ strings.xml并添加一行代码'这里你的多行文本'也可以使用'\ n'从其他任何点断开行,行会自动调整。

TextView将是多行,当它不会得到足够的空间适合在单行和singLine没有设置为true。

如果它在一行中获得空间,它不会是多行。