Problem: RelativeLayout mit android:layout_width="wrap_content" und Child mit android:layout_alignParentLeft="true"

  • Antworten:2
  • Bentwortet
Harry
  • Forum-Beiträge: 52

21.12.2011, 09:50:06 via Website

Hallo,

ich habe eine GridView in der ich mehrere Elemente wie das unten beschriebene habe.

Ein Relativelayout mit einem Bild und darunter einem Text. Bild und Text sind zentriert.
Das funktioniert auch gut. Nun möchte ich aber noch einen 2. Text oben rechts in der Ecke haben.
Wenn ich diesem die Eigenschaft android:layout_alignParentRight="true" gebe, wird das RelativeLayout viel zu groß.

1<?xml version="1.0" encoding="utf-8"?>
2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:gravity="center_horizontal" >
6
7 <LinearLayout
8 android:layout_width="wrap_content"
9 android:layout_height="wrap_content"
10 android:orientation="vertical" >
11
12 <ImageView
13 android:id="@+id/image"
14 android:layout_width="wrap_content"
15 android:layout_height="wrap_content"
16 android:layout_gravity="center_horizontal"
17 />
18
19 <TextView
20 android:id="@+id/text"
21 android:layout_width="wrap_content"
22 android:layout_height="wrap_content"
23 android:layout_gravity="center_horizontal"
24 android:textSize="12dp"
25 android:singleLine="true"
26 android:ellipsize="end"
27 />
28 </LinearLayout>
29
30 <TextView
31 android:id="@+id/text2"
32 android:layout_width="wrap_content"
33 android:layout_height="wrap_content"
34 android:layout_alignParentRight="true"
35 android:textSize="18sp"
36 android:gravity="center"
37 />
38</RelativeLayout>

Gibt es eine Möglichkeit, dass jedes Element nur den tatsächlichen Platz einnimmt, und der 2. Text oben rechts in der Ecke plaziert wird?

Danke!

Gruß Harry

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

21.12.2011, 10:19:37 via Website

das relativelayout wird so groß wie sein inhalt.

wenn du dem inhalt sagst es soll rechts sein, dann wirds schwer zu wissen, wo genau jetzt rechts ist, da das layout so groß wie sein inhalt wird. von daher musst da zusätzliche angaben treffen wie zb eine breite festlegen

swordiApps Blog - Website

Antworten
Harry
  • Forum-Beiträge: 52

21.12.2011, 10:40:18 via Website

Hallo,
danke für die Erkärung.

Habe jetzt eine Lösung gefunden:

1<?xml version="1.0" encoding="utf-8"?>
2<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content" >
5
6 <ImageView
7 android:id="@+id/bild"
8 android:layout_width="wrap_content"
9 android:layout_height="wrap_content"
10 android:layout_centerHorizontal="true"
11 />
12
13 <TextView
14 android:id="@+id/text"
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:layout_centerHorizontal="true"
18 android:layout_below="@id/bild"
19 android:textSize="12dp"
20 android:singleLine="true"
21 android:ellipsize="end"
22 />
23
24 <TextView
25 android:id="@+id/text2"
26 android:layout_width="wrap_content"
27 android:layout_height="wrap_content"
28 android:layout_alignRight="@id/bild"
29 android:textSize="18sp"
30 />
31</RelativeLayout>

Also:
- alles in das RelativeLayout ohne das LinearLayout.
- Text unterhalb des Bildes mit android:layout_below="@id/bild" anordnen.
- und den 2. Text mit android:layout_alignRight="@id/bild" bündig mit dem Bild rechts abschließen.

:)

Gruß Harry

— geändert am 21.12.2011, 10:49:41

Antworten