我创建了一个3级的ExpandableListView,并且如果内容太长,则会遇到第二级和第三级使用的TextView不支持换行的问题。如果需要,它应该动态地超过一行。第一级TextView做得很好(自动),我实际上在xml中对所有三个TextView都有相同的设置。接下来是布局xmls,一个带有id groupname的TextView用于第二级(例如下图中的第一个红色X),带有id子名的一个用于第三级(例如,第二级和第三级红色X)图片如下)。它应该就像图片中的绿色钩子一样。
“singleLine = false”似乎不起作用。还尝试了在其他SO帖子中找到的一些不同的选项,但我所测试的并没有为我工作。像ellipsize一样,滚动horizontale,不同layout_width等等。唯一有效的是在x 100 dp上设置一个固定的layout_width,但这不是动态的,我是对的吗?
如果有人可以帮助我,那会很棒。非常感谢!
以下是截图:
<?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" />
答案 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。