Por que as visualizações de texto se encontram no RelativeLayout
-
20-09-2019 - |
Pergunta
Eu tenho um problema com duas visualizações de texto na mesma altura em uma relatividade que se encontra.
Eu uso o seguinte layout.
<?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>
Isso me dá essa visão:
TEXTO DE ALT HTTP://janusz.de/~janusz/view.png
Tudo é como eu preciso, exceto que o nome e as informações de duas visualizações de texto são exibidas no mesmo espaço de tela com um na parte superior do outro.
Como posso evitar isso?
Solução
Para o seu @+id/name
TextView
, adicionar android:layout_toLeftOf="..."
para qualquer TextView
está à direita. A captura de tela e o XML não parecem alinhar (a captura de tela parece ter "distância" no textview sobrescrito, mas o XML não), então não tenho certeza de qual widget esse é.
Se você estiver segmentando o Android 1.5, precisará solicitar os widgets no XML, de modo que os widgets sejam definidos antes de serem referenciados android:layout_toLeftOf
ou android:layout_toRightOf
. Se você está segmentando o Android 1.6 e apenas mais recente, pode que eles estejam em qualquer ordem, mas a primeira ocorrência de qualquer identificação distinta deve ter o +
sinal, mesmo que essa primeira ocorrência esteja em um android:layout_toLeftOf
atributo em vez de um android:id
atributo.
Outras dicas
Seu Namenamename TextView é definido com largura = FILL_PARENT para que você não possa colocar nada à sua direita;)