Perché TextViews in esecuzione in ogni altro in RelativeLayout
-
20-09-2019 - |
Domanda
Ho un problema con due Textviews sulla stessa altezza in un RelativeLayout correre l'uno nell'altro.
Io uso il seguente 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>
Questo mi dà questo punto di vista:
alt text http://janusz.de/~janusz/view.png
Tutto è come mi serve, se non il nome e le informazioni due textviews vengono visualizzati sullo stesso spazio sullo schermo con l'uno sopra l'altro.
Come posso evitare questo?
Soluzione
Per la vostra @+id/name
TextView
, aggiungere android:layout_toLeftOf="..."
per qualunque TextView
si trova sulla destra. Lo screenshot e l'XML non sembrano allinearsi (screenshot sembra avere "Distance" in TextView sovrascritto, ma l'XML non), quindi non sono del tutto certo che Widget Questo è.
Se si prendono di mira Android 1.5, è necessario ordinare i widget in XML in modo tale che i widget sono definite prima di essere referenziate da android:layout_toLeftOf
o android:layout_toRightOf
. Se si prendono di mira Android 1.6 e versioni successive solo, si può avere loro di essere in qualsiasi ordine, ma la prima occorrenza di qualsiasi ID distinta deve avere il segno +
, anche se quella prima occorrenza è in un attributo android:layout_toLeftOf
invece di un attributo android:id
.
Altri suggerimenti
Il TextView namenamename è impostata con width = fill_parent quindi non si può mettere nulla alla sua destra;)