LinearLayout füllt ScrollView nicht aus

  • Antworten:9
  • Bentwortet
p a
  • Forum-Beiträge: 131

01.12.2011, 14:35:40 via Website

Hi

ich hab hier eine ScrollView in der ein LinearLayout mit diversen Elementen liegt, unter anderem mit einem ListView im dem mehrere Elemente aus der Datenbank angezeigt werden.

Jetzt habe ich folgendes Problem damit und zwar füllt das LinearLayout die ScrollView nicht aus (nur zu etwa 2/3), das LinearLayout steht auf layout_height="match_parent", es sind sonst keine Sachen in der ScrollView (geht ja auch nicht).

Kann mir das mal jemand erläutern?

Antworten
p a
  • Forum-Beiträge: 131

01.12.2011, 15:03:37 via Website

Bin mir ziemlich sicher dass es das LinearLayout ist
Die ScrollView steht natürlich auch auf match_parent (fill_parent ist deprecated)
In der grafischen Ansicht füllt die ScrollView auch den gesamten verfügbaren Bereich, das LinearLayout aber nur die besagten 2/3

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

01.12.2011, 15:27:45 via App

warum zeigst dass xml nicht? wie soll dir jemand helfen. hellseher sind hier soweit ich weiss keine.

swordiApps Blog - Website

Antworten
p a
  • Forum-Beiträge: 131

01.12.2011, 15:36:17 via Website

Weil ich nicht einfach 240 Zeilen xml mal eben so posten will, ist ja einfach sehr, sehr lang
aber sag doch einfach "zeig mal das xml"
dann sag ich "kein problem, hier:"

1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:orientation="vertical"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent">
7 <ScrollView
8 android:layout_width="match_parent"
9 android:layout_height="match_parent"
10 android:layout_weight="1">
11 <LinearLayout
12 android:orientation="vertical"
13 android:layout_width="match_parent"
14 android:layout_height="match_parent">
15 <LinearLayout
16 android:orientation="horizontal"
17 android:layout_width="wrap_content"
18 android:layout_height="wrap_content"
19 android:layout_gravity="center">
20 <LinearLayout
21 android:orientation="vertical"
22 android:layout_width="wrap_content"
23 android:layout_height="wrap_content"
24 android:layout_weight="0">
25 <TextView
26 android:text="@string/rsaArt"
27 android:layout_width="wrap_content"
28 android:layout_height="wrap_content"
29 android:layout_marginLeft="@dimen/rand"
30 android:layout_marginRight="@dimen/rand"
31 android:layout_gravity="left"
32 style="@style/text_schwarz"
33 />
34 <TextView
35 android:text="@string/rsaDimension"
36 android:layout_width="wrap_content"
37 android:layout_height="wrap_content"
38 android:layout_marginRight="@dimen/rand"
39 android:layout_marginLeft="@dimen/rand"
40 android:layout_gravity="left"
41 style="@style/text_schwarz"
42 />
43 <TextView
44 android:text="@string/rsaSpeedIndex"
45 android:layout_width="wrap_content"
46 android:layout_height="wrap_content"
47 android:layout_weight="0"
48 android:layout_marginLeft="@dimen/rand"
49 android:layout_marginRight="@dimen/rand"
50 android:layout_gravity="left"
51 style="@style/text_schwarz"
52 />
53 <TextView
54 android:text="@string/rsaHersteller"
55 android:layout_width="wrap_content"
56 android:layout_height="wrap_content"
57 android:layout_weight="0"
58 android:layout_marginLeft="@dimen/rand"
59 android:layout_marginRight="@dimen/rand"
60 android:layout_gravity="left"
61 style="@style/text_schwarz"
62 />
63 </LinearLayout>
64 <LinearLayout
65 android:orientation="vertical"
66 android:layout_width="wrap_content"
67 android:layout_height="wrap_content"
68 android:layout_weight="1">
69 <EditText
70 android:id="@+id/etx_rsaArt"
71 android:text=" Sommerreifen"
72 android:layout_width="match_parent"
73 android:layout_height="wrap_content"
74 android:background="@drawable/reifen_edittext_gross"
75 android:layout_marginRight="@dimen/randKlein"
76 android:layout_marginLeft="1dp"
77 android:focusable="false"
78 style="@style/text_schwarz"
79 />
80 <LinearLayout
81 android:orientation="horizontal"
82 android:layout_width="wrap_content"
83 android:layout_height="wrap_content"
84 android:layout_marginTop="5dp">
85 <EditText
86 android:id="@+id/etx_rsaDimensionBreite"
87 android:text=" 195"
88 android:layout_width="wrap_content"
89 android:layout_height="wrap_content"
90 android:background="@drawable/reifen_edittext"
91 android:layout_marginRight="@dimen/randKlein"
92 android:layout_marginTop="0dp"
93 android:focusable="false"
94 style="@style/text_schwarz"
95 />
96 <TextView
97 android:text="/"
98 android:layout_width="wrap_content"
99 android:layout_height="wrap_content"
100 android:layout_marginTop="0dp"
101 style="@style/text_schwarz"
102 />
103 <EditText
104 android:id="@+id/etx_rsaDimensionQuer"
105 android:text=" 65"
106 android:layout_width="wrap_content"
107 android:layout_height="wrap_content"
108 android:background="@drawable/reifen_edittext"
109 android:layout_marginRight="@dimen/randKlein"
110 android:layout_marginTop="0dp"
111 android:focusable="false"
112 style="@style/text_schwarz"
113 />
114 <EditText
115 android:id="@+id/etx_rsaDimensionZoll"
116 android:text=" R 15"
117 android:layout_width="wrap_content"
118 android:layout_height="wrap_content"
119 android:background="@drawable/reifen_edittext"
120 android:layout_marginRight="@dimen/randKlein"
121 android:layout_marginTop="0dp"
122 android:focusable="false"
123 style="@style/text_schwarz"
124 />
125 </LinearLayout>
126 <EditText
127 android:id="@+id/etx_rsaSpeedindex"
128 android:text=" Alle"
129 android:layout_width="match_parent"
130 android:layout_height="wrap_content"
131 android:background="@drawable/reifen_edittext_gross"
132 android:layout_marginRight="@dimen/randKlein"
133 android:layout_marginLeft="1dp"
134 android:focusable="false"
135 style="@style/text_schwarz"
136 />
137 <EditText
138 android:id="@+id/etx_rsaHersteller"
139 android:text=" Alle"
140 android:layout_width="match_parent"
141 android:layout_height="wrap_content"
142 android:layout_weight="1"
143 android:background="@drawable/reifen_edittext_gross"
144 android:layout_marginRight="@dimen/randKlein"
145 android:layout_marginLeft="1dp"
146 android:focusable="false"
147 style="@style/text_schwarz"
148 />
149 </LinearLayout>
150 </LinearLayout>
151 <LinearLayout
152 android:orientation="horizontal"
153 android:layout_width="match_parent"
154 android:layout_height="wrap_content"
155 android:layout_marginTop="@dimen/rand"
156 android:gravity="right">
157 <Button
158 android:id="@+id/btn_rsaSuchen"
159 android:text="@string/btnSuchen"
160 android:layout_width="wrap_content"
161 android:layout_height="wrap_content"
162 android:layout_marginTop="0dp"
163 android:layout_marginRight="@dimen/randGross"
164 android:gravity="center"
165 style="@style/button_layout"
166 />
167 </LinearLayout>
168 <LinearLayout
169 android:orientation="vertical"
170 android:layout_width="match_parent"
171 android:layout_height="match_parent"
172 android:layout_margin="@dimen/randGross">
173 <LinearLayout
174 android:id="@+id/lla_rsaTabelle"
175 android:orientation="horizontal"
176 android:layout_width="match_parent"
177 android:layout_height="match_parent"
178 android:layout_marginRight="@dimen/randGross">
179 <LinearLayout
180 android:orientation="vertical"
181 android:layout_width="match_parent"
182 android:layout_height="wrap_content"
183 android:layout_weight="2"
184 android:layout_gravity="left">
185 <TextView
186 android:text="@string/rsaTabMarke"
187 android:layout_width="match_parent"
188 android:layout_height="wrap_content"
189 android:gravity="center_horizontal"
190 style="@style/text_schwarz"
191 />
192 </LinearLayout>
193 <LinearLayout
194 android:orientation="vertical"
195 android:layout_width="match_parent"
196 android:layout_height="wrap_content"
197 android:layout_weight="3"
198 android:layout_gravity="center_horizontal">
199 <TextView
200 android:text="@string/rsaTabAusf"
201 android:layout_width="match_parent"
202 android:layout_height="wrap_content"
203 android:gravity="center_horizontal"
204 style="@style/text_schwarz"
205 />
206 </LinearLayout>
207 <LinearLayout
208 android:orientation="vertical"
209 android:layout_width="wrap_content"
210 android:layout_height="wrap_content"
211 android:layout_gravity="right">
212 <TextView
213 android:text="@string/rsaTabPreis"
214 android:layout_width="match_parent"
215 android:layout_height="wrap_content"
216 android:gravity="center_horizontal"
217 android:layout_marginLeft="@dimen/randKlein"
218 style="@style/text_schwarz"
219 />
220 </LinearLayout>
221 </LinearLayout>
222 <ListView
223 android:id="@+id/lsv_rsaTabelle"
224 android:layout_width="match_parent"
225 android:layout_height="match_parent"
226 android:cacheColorHint="@color/transparent"
227 >
228 </ListView>
229 </LinearLayout>
230 <TextView
231 android:id="@+id/txv_rsaKeineReifen"
232 android:text="@string/rsaKeineReifen"
233 android:layout_width="match_parent"
234 android:layout_height="wrap_content"
235 style="@style/text_schwarz"
236 />
237 </LinearLayout>
238 </ScrollView>
239</LinearLayout>

Ausserdem hatte ich so ein Problem schonmal, weiss jetzt nur nicht mehr wie ich es da gelöst habe.
Von daher dachte ich mir, vielleicht erkennt ja jemand das Problem wieder und weiss die Lösung.

— geändert am 01.12.2011, 15:37:03

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

01.12.2011, 15:56:25 via Website

ja das mag sein, jedoch ist die wahrscheinlichkeit wesentlich größer, dass sich jemand das xml ansieht und das problem erkennt.

es gibt täglich zig posts, wo sich der poster einfach nichts dabei denkt. wenn du dir denkst, dass es einfach zu lange ist, hast ja schonmal mitgedacht. das ist ja grundsätzlich natürlich schonmal gut, und kommt nicht allzu oft vor :D

zu deinem problem:

warum hat dein scrollview layout_weight="1" . für was ist diese angabe gedacht?

— geändert am 01.12.2011, 15:57:40

swordiApps Blog - Website

Antworten
p a
  • Forum-Beiträge: 131

01.12.2011, 16:04:31 via Website

Vorallem denk ich mir dabei auch, wenn ich

1GAAAAAANZ VIEL CODE
mach mal einer meinen Quelltext heile
poste, werde ich dabei herzlich wenig lernen und beim nächsten Problem bleibt mir dann kaum eine andere Möglichkeit als es wieder genauso zu machen.

Aber zur Sache ...
das layout_weight="1" ist ein Testrelikt, das unterste TextView (txv_rsaKeineReifen) hatte ich testweise ausserhalb der ScrollView und hab dann experimentiert ob es so irgendwie geht. Hab dann einfach vergessen das layout_weight wieder rauszunehmen, aber ändert ja nichts

Bin übrigens auch für Alternativen offen
also, was ich machen will sollte ja klar sein, Suchmaske und dadrunter eine Liste mit Ergebnissen bzw. einem "keine Ergebnisse"-TextView und das ganze soll dann so scrollbar werden dass sich auch die Suchmaske nach oben aus dem Bild schieben lässt wenn die Liste entsprechend lang wird.

Falls jemand also eine andere Idee hat wie man das realisieren könnte, immer her damit

— geändert am 01.12.2011, 16:08:25

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

01.12.2011, 16:08:07 via Website

hmm ja wenns nix ändert, ok :D

hmm sonst schauts eigentlich gut aus, sehe da auf die schnelle das problem nicht.

ich füg dann immer hintergrundfarben ein und schaus mir an, damit ich sehe, welches element genau jetzt stört

swordiApps Blog - Website

Antworten
p a
  • Forum-Beiträge: 131

01.12.2011, 16:13:58 via Website

aber hier ist ja alles relativ simpel, da tut es auch das Outlining im grafischen Editor, aber naja hilft halt auch nicht, ich komm nicht dahinter, das untere drittel ist einfach nur leer, egal wie oft ich dem LinearLayout match_parent sage.
Dachte halt erst die TextView wäre irgendwie im Weg, aber die hat ja keine konkrete Position sondern steht einfach nur unter den anderen Elementen, also sollte sie ja einfach aus dem Layout geschoben werden wenn es zuviel wird, aber wird sie halt nicht, die ListView bleibt einfach nur auf der Größe auf der sie ist.
Achja, das hab ich bislang vergessen, die ListView hat in der laufenden App soweit ich das sehen kann genau die Größe eines Listenelements. In der Vorschau im Editor aber nicht, da ist sie etwas kleiner, aber das ist ja sowieso eher eine Orientierungshilfe als eine richtige Vorschau.
... und ich glaub eigentlich auch nicht wirklich dass es damit was zu tun hat, weil die Listenelemente selbst gemacht sind, im grafischen Editor weiss das Layout also quasi garnicht welches Listenelement in ihr gezeigt werden soll.

— geändert am 05.12.2011, 16:53:59

Antworten
p a
  • Forum-Beiträge: 131

05.12.2011, 14:12:47 via Website

La problema war offenbar ein ganz anderes

ListView in einem ScrollView geht anscheinend immer kaputt (Stand: ca. 2010, vielleicht ist es in neueren Versionen gefixed)

jedenfalls habe ich mir jetzt mit diesem Work-around weitergeholfen:
http://nex-otaku-en.blogspot.com/2010/12/android-put-listview-in-scrollview.html
damit rechnet man halt aus wie groß das ListView werden würde und setzt die Größe dann manuell, damit funktioniert es aufjedenfall (bei mir)

Antworten