Почему текстовые представления сталкиваются друг с другом в RelativeLayout

StackOverflow https://stackoverflow.com/questions/2462955

Вопрос

У меня проблема с двумя 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 , поэтому вы ничего не можете поместить справа от него ;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top