2

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

“singleLine=false”似乎不起作用。还尝试了其他 SO 帖子中的一些不同选项,但我测试的内容对我没有用。像 ellipsize、scroll Horizo​​ntale、不同的 layout_width 等等。唯一有效的是在 x 百 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" />

4

3 回答 3

6

在您的 xml 中添加这一行

android:inputType="textMultiLine"

或者

使用这样的编码添加文本,您可以使用 '\n' 添加换行符(但在这里您必须手动在需要的位置添加换行符)

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

结果将是


你好
你好吗

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

于 2013-02-14T03:08:46.333 回答
1

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

于 2013-02-14T04:33:28.333 回答
1

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

android:maxWidth="xxxdp"

FYR

于 2013-06-25T09:25:34.173 回答