Pourquoi TextViews en cours d'exécution dans l'autre en RelativeLayout
-
20-09-2019 - |
Question
J'ai un problème avec deux Textviews sur la même hauteur dans un RelativeLayout en cours d'exécution dans l'autre.
J'utilise la mise en page suivante.
<?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>
Cela me donne ce point de vue:
texte alt http://janusz.de/~janusz/view.png
Tout est comme je l'ai besoin sauf les deux nom de textviews et les informations sont affichées sur le même espace d'écran avec l'une au-dessus de l'autre.
Comment puis-je éviter cela?
La solution
Pour votre @+id/name
de TextView
, ajoutez android:layout_toLeftOf="..."
pour tout ce TextView
est à droite. La capture d'écran et le XML ne semblent pas aligner (capture d'écran apparaît dans le TextView d'avoir remplacé « Distance », mais le XML ne fonctionne pas), donc je ne suis pas tout à fait certain ce widget qui est.
Si vous ciblez Android 1.5, vous devez commander les widgets dans le fichier XML telles que les widgets sont définis avant qu'elles ne soient de android:layout_toLeftOf
ou android:layout_toRightOf
. Si vous ciblez Android 1.6 et seulement, vous pouvez les être dans un ordre quelconque, mais la première occurrence d'un ID distinct doit avoir le signe +
, même si cet événement est d'abord dans un attribut android:layout_toLeftOf
au lieu d'un attribut android:id
.
Autres conseils
Votre namenamename textview est réglé avec une largeur = fill_parent de sorte que vous ne pouvez pas mettre quoi que ce soit à sa droite;)