Android TextView不在ListView中执行换行(多行文本)

时间:2013-02-14 02:48:17

标签: android listview textview expandablelistview multiline

我创建了一个3级的ExpandableListView,并且如果内容太长,则会遇到第二级和第三级使用的TextView不支持换行的问题。如果需要,它应该动态地超过一行。第一级TextView做得很好(自动),我实际上在xml中对所有三个TextView都有相同的设置。接下来是布局xmls,一个带有id groupname的TextView用于第二级(例如下图中的第一个红色X),带有id子名的一个用于第三级(例如,第二级和第三级红色X)图片如下)。它应该就像图片中的绿色钩子一样。

“singleLine = false”似乎不起作用。还尝试了在其他SO帖子中找到的一些不同的选项,但我所测试的并没有为我工作。像ellipsize一样,滚动horizo​​ntale,不同layout_width等等。唯一有效的是在x 100 dp上设置一个固定的layout_width,但这不是动态的,我是对的吗?

如果有人可以帮助我,那会很棒。非常感谢!

以下是截图:

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/childname"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="60dp"
    android:layout_marginLeft="60dp"
    android:textColor="#AAAAAA"
    android:singleLine="false"
    android:text=""
    android:gravity="center_vertical"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/groupname"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="45dp"
    android:layout_marginRight="60dp"
    android:textColor="#555555"
    android:singleLine="false"
    android:gravity="center_vertical"
    android:text=""
    android:textAppearance="?android:attr/textAppearanceMedium" />

3 个答案:

答案 0 :(得分:5)

在xml中添加此行

android:inputType="textMultiLine"

使用这样的编码添加文字,你可以使用'\ n'添加换行符(但是你必须在你想要的地方手动添加换行符)

TextView txt1 = (TextView) findViewById(R.id.childname);
txt1.setText("Hi \nHello \nHow are You");

结果将是

<强>您好
你好
你好吗

编辑 接受的答案 - 删除行'android:layout_alignParentLeft =“true”

答案 1 :(得分:1)

尝试使用 LinearLayout 而不是 RelativeLayout 作为 TextView 的父级

答案 2 :(得分:1)

我已将此属性添加到ListView内的TextView中,并使其正确执行换行符。

android:maxWidth="xxxdp"

F.Y.R。