Почему текстовые представления сталкиваются друг с другом в RelativeLayout
-
20-09-2019 - |
Вопрос
У меня проблема с двумя Textviews на одной высоте в RelativeLayout, пересекающимися друг с другом.
Я использую следующий макет.
<?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="fill_parent">
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon" />
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="NameNameNameNameNameNameName"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/logo"
android:gravity="clip_horizontal"
android:lines="1" />
<TextView
android:id="@+id/information"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Distance"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/nrcoupons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Number"
android:layout_alignRight="@id/information"
android:layout_alignBottom="@id/logo" />
<TextView
android:id="@+id/subcategory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Subcategory"
android:layout_alignLeft="@id/name"
android:layout_alignBottom="@id/logo" />
</RelativeLayout>
Это дает мне такое представление:
альтернативный текст http://janusz.de /~janusz/посмотреть.png
Все так, как мне нужно, за исключением того, что имя и информация двух textviews отображаются в одном пространстве экрана, причем одно поверх другого.
Как я могу избежать этого?
Решение
Для вашего @+id/name
TextView
, добавить android:layout_toLeftOf="..."
для чего бы то ни было TextView
находится справа.Скриншот и XML, похоже, не совпадают (на скриншоте, похоже, есть "Расстояние" в перезаписанном TextView, но в XML этого нет), поэтому я не совсем уверен, что это за виджет.
Если вы ориентируетесь на Android 1.5, вам нужно будет упорядочить виджеты в XML таким образом, чтобы виджеты были определены до того, как на них будут ссылаться из android:layout_toLeftOf
или android:layout_toRightOf
.Если вы ориентируетесь только на Android 1.6 и новее, вы можете расположить их в любом порядке, но первое вхождение любого отдельного идентификатора должно содержать +
знак, даже если это первое вхождение находится в android:layout_toLeftOf
атрибут вместо android:id
атрибут.
Другие советы
Вашему namenamename textview задано значение width = fill_parent , поэтому вы ничего не можете поместить справа от него ;)