Почему TextViews сталкиваются друг с другом в RelativeLayout - PullRequest
1 голос
/ 17 марта 2010

У меня проблема с двумя 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/view.png

Все так, как мне нужно, за исключением того, что имя и информация двух текстовых представлений отображаются на одном и том же месте экрана, а одно поверх другого.

Как мне этого избежать?

Ответы [ 2 ]

2 голосов
/ 17 марта 2010

Для вашего @+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 атрибут.

0 голосов
/ 17 марта 2010

Ваше текстовое представление namenamename установлено с width = fill_parent, так что вы не можете ничего поместить справа от него;)

...