Относительные текстовые изображения RelativeLayout перекрываются

У меня довольно простая строка 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_winner" и я не понимаю, почему.

Я пробовал использовать 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 не должны перекрываться.

Вот пример (см. Вторую строку):

Введите описание изображения здесь

Какие-нибудь дальнейшие идеи, как это можно было бы исправить?

Solutions Collecting From Web of "Относительные текстовые изображения RelativeLayout перекрываются"

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

Также установите android:maxLines="1" и Fix width for tournament winner потому что, когда его long название турнира can not см. …

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" но оставил единственную строку, а край слева остался неиспользованным, так как результат казался мне идеальным (надеюсь, что это также относится и к другим устройствам).

Одна вещь, хотя – в первом текстовом представлении ( android:layout_toLeftOf="@+id/tournament_winner" ) мне пришлось использовать 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> 

Вы можете использовать одиночный текстовый вид вместо двух и просто отображать обе строки в одном текстовом виде!