RelativeLayout textviews重叠

我有一个相当简单的ListView行:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/tournament_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:textSize="25dp" /> <TextView android:id="@+id/tournament_winner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:textSize="25dp" /> </RelativeLayout> 

"@+id/tournament_name"的文字很长时 – 与"@+id/tournament_name"重叠,我不明白为什么。

我尝试使用android:singleLine="false"无济于事。 我也尝试使用android:inputType="textMultiLine"作为文件说android:singleLine="false"已弃用,但我得到的警告: Attribute android:inputType should not be used with <TextView>: Change element type to <EditText> ? 所以这里也不好。

我也尝试使用android:ellipsize="end"但这是行不通的。 我认为这是因为左边TextView ("@+id/tournament_name")的文本不足以填充ListView的全部宽度(哪些代码不在这里播种)。

我确定如果我使用android:layout_width="wrap_content" ,两个TextView字段不应该重叠。

这是一个例子(见第二行):

在这里输入图像说明

任何进一步的想法如何可以解决?

Related of "RelativeLayout textviews重叠"

  android:layout_toLeftOf="@id/tournament_winner" in First TextView. 

同时设置android:maxLines="1"Fix width for tournament winner因为当它的long比赛名称不能看到…

row.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/tournament_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_toLeftOf="@id/tournament_winner" android:maxLines="1" android:text="NAMEEEEEEEEEEEEEEEEEEEEEEEEEEE" android:textSize="25dp" /> <TextView android:id="@+id/tournament_winner" android:layout_width="wrap_content" android:layout_marginLeft="10dp" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:text="WINER" android:textSize="25dp" /> </RelativeLayout> 

非常感谢你的回答 – 抱歉花了我一些时间来回应。 我结束了使用你的android:layout_toLeftOf="@+id/tournament_winner"但留下了单行和余量未使用,因为结果似乎是完美的(希望这也是其他设备的情况)。

有一件事 – 在第一个文本视图(tournament_name),我不得不使用android:layout_toLeftOf="@+id/tournament_winner"而不是android:layout_toLeftOf="@id/tournament_winner" – 注意添加的+ 。 由于某种原因,我得到一个错误使用android:layout_toLeftOf="@id/tournament_winner"错误:找不到匹配给定名称的资源…所以它似乎是可能的,并需要在调用时定义资源这是因为系统在定义之前不知道它。

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/tournament_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/tournament_winner" android:layout_alignParentLeft="true" android:textSize="25dp" /> <TextView android:id="@+id/tournament_winner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:textSize="25dp" /> </RelativeLayout> 

您可以使用单个文本视图来代替两个,只需在一个文本视图中显示两个string!