Benötige Hilfe mit Row-Layout

  • Antworten:10
Gelöschter Account
  • Forum-Beiträge: 694

02.11.2012, 16:26:23 via Website

Boah, ich bau Dir software-technisch alles - aber diese Layouts, ich werde das nie verstehen.

In einem Row-Layout für eine ListView hätte ich gerne den grünen Haken (siehe Screenshot) entweder ganz rechts oder mittig in der rechten Spalte. Ich bekomme das einfach nicht hin. Wäre jemand so nett und hilft mir kurz. Ich habe schon mehrfach mit RelativeLayout versucht - aber das hat bei mir noch nie zu einem brauchbaren Ergebnis geführt ...



Hier das zugehörige Layout mit dem Style:

1<style name="TextViewStandard" parent="@android:style/Widget.TextView">
2 <item name="android:layout_height">wrap_content</item>
3 <item name="android:layout_marginLeft">2dip</item>
4 <item name="android:layout_marginRight">2dip</item>
5 <item name="android:layout_marginTop">2dip</item>
6 <item name="android:layout_width">fill_parent</item>
7 <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
8 <item name="android:textColor">@android:color/white</item>
9 </style>
1<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:layout_height="wrap_content"
3 android:layout_width="fill_parent"
4 android:orientation="vertical"
5 android:paddingBottom="2dip"
6 android:paddingTop="2dip" >
7
8 <LinearLayout
9 android:layout_height="wrap_content"
10 android:layout_width="fill_parent"
11 android:orientation="horizontal"
12 android:paddingBottom="2dip"
13 android:paddingTop="2dip" >
14
15 <TextView
16 android:gravity="right"
17 android:id="@+id/tankvorgaenge_row_datum"
18 android:layout_weight="1"
19 style="@style/TextViewStandard" />
20
21 <TextView
22 android:gravity="right"
23 android:id="@+id/tankvorgaenge_row_liter"
24 android:layout_weight="1"
25 style="@style/TextViewStandard" />
26
27 <TextView
28 android:gravity="right"
29 android:id="@+id/tankvorgaenge_row_kennzeichen"
30 android:layout_weight="1"
31 style="@style/TextViewStandard" />
32 </LinearLayout>
33
34 <LinearLayout
35 android:layout_height="wrap_content"
36 android:layout_width="fill_parent"
37 android:orientation="horizontal"
38 android:paddingBottom="2dip"
39 android:paddingTop="2dip" >
40
41 <TextView
42 android:gravity="right"
43 android:id="@+id/tankvorgaenge_row_kilometerstand"
44 android:layout_weight="1"
45 style="@style/TextViewStandard" />
46
47 <TextView
48 android:gravity="right"
49 android:id="@+id/tankvorgaenge_row_literpreis"
50 android:layout_weight="1"
51 style="@style/TextViewStandard" />
52
53 <TextView
54 android:gravity="right"
55 android:id="@+id/tankvorgaenge_row_gesamtpreis"
56 android:layout_weight="1"
57 style="@style/TextViewStandard" />
58 </LinearLayout>
59
60 <LinearLayout
61 android:layout_height="wrap_content"
62 android:layout_width="fill_parent"
63 android:orientation="horizontal"
64 android:paddingBottom="2dip"
65 android:paddingTop="2dip" >
66
67 <TextView
68 android:gravity="right"
69 android:layout_weight="1"
70 android:text=""
71 style="@style/TextViewStandard" />
72
73 <TextView
74 android:gravity="right"
75 android:id="@+id/tankvorgaenge_row_verbrauch"
76 android:layout_weight="1"
77 style="@style/TextViewStandard" />
78
79 <ImageView
80 android:gravity="right"
81 android:id="@+id/tankvorgaenge_row_voll"
82 android:layout_height="fill_parent"
83 android:layout_weight="1"
84 android:layout_width="fill_parent"
85 android:scaleType="fitStart" />
86 </LinearLayout>
87
88</LinearLayout>

— geändert am 02.11.2012, 16:27:48

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

02.11.2012, 19:42:07 via Website

Habs grad nur auf die Schnelle in einem eigenen Layout probiert, Ergebnis war, das dein "android:scaleType="fitStart"" der Grund für die Linksausrichtung ist.

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

03.11.2012, 09:10:57 via Website

Vielen Dank. Ich habe in dem Code der Ressource aus meinem OriginalPost nur die eine Zeile entfernt.

Jetzt ist es wenigstens mittig - obwohl "gravity=right" angegeben ist. Ich kapiere das einfach nicht.

— geändert am 03.11.2012, 09:11:10

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

03.11.2012, 10:05:11 via Website

Wenn es unbedingt rechts stehen soll, dann könntest du ein leeres TextView mit dem Häkchen als drawableRight verschen :)

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

03.11.2012, 11:02:15 via Website

Warum Texte in diesem Fall so formatiert werden können, Bilder ab nicht, weiss ich auch nicht.
Hat vielleicht mit der weight Geschichte zu tun?

Im Zusammenhang mit linearlayout/weight Konstukten hatte ich mal das Problem, das die Views sich nicht gleichmäßig verteilen wollten; Abhilfe schuf das Ändern der width von wrap/match auf "0dp".

Wenn die 3 Zeilen jeweils zusammengehören, käme vielleicht auch ein TableLayout in Frage?

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

03.11.2012, 11:17:40 via Website

Ich habe vor einigen Jahren mit TableLayout experimentiert. TableLayout formatiert selbst an Hand des Inhalts. Wenn man exakt drei gleiche Spalten haben will kann das in die Hose gehen. Damals habe ich beschlossen niemals wieder auf TableLayout zu schauen. Das ist etwas wenn Dir das Verhältnis der Spalten untereinander egal ist - aber das weißt Du ja.

Zwischenzeitlich habe ich mal Deinen Vorschlag mit dem TextView mit einem Icon am rechten Rand ausprobiert - jetzt wird das Icon viel größer dargestellt. Uah.

Ich bin ein reiner "Text-Mensch" all diese grafischen Dinge treiben mich in den Wahnsinn. War das schön mit dem grünen 80x25 Screen.

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

03.11.2012, 12:15:58 via Website

TableLayout formatiert selbst an Hand des Inhalts. Wenn man exakt drei gleiche Spalten haben will kann das in die Hose gehen.
Jo, allerdings kann ich das in deinem Screenshot nicht erkennen - oder können da noch deutlich längere Texte auftauchen, die man hier nur nicht sieht?

jetzt wird das Icon viel größer dargestellt.
Auch spannend, zumal das Icon jetzt unscharf ist, was die Vermutung zuläßt, das es vergrößert wurde...
Ich habe bislang immer die Originalgröße des Icons bekommen, wenn ich diese Technik verwendet habe.

War das schön mit dem grünen 80x25 Screen.
Örks :grin:

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

03.11.2012, 16:23:20 via Website

Nein, das ist alles an Text. Als ich die TableLayouts verwendet hatte da wurden die drei Spalten vom System hintereinander geknallt, In Abhängigkeit vom enthaltenen Text, und rechts blieb freier Platz. Ich hatte dann irgendwann aufgegeben.

Örks

Na ja, war ein wenig übertrieben - bin halt gefrustet von dem Layout-Kram.

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

03.11.2012, 18:54:28 via Website

da wurden die drei Spalten vom System hintereinander geknallt, In Abhängigkeit vom enthaltenen Text, und rechts blieb freier Platz.

Lösung: Breite auf match_parent, ausserdem stretch_columns="*" (oder kommasepariert die zu streckenden Spalten) setzen :-)

Antworten