Progressbar dupliziert sich beim Scrollen in der ListView

Freddchen

Freddchen

Neues Mitglied
0
Hallo zusammen,

ich habe folgendes Problem bei meiner ListView.
Wenn ich eine bestimmte "Row" anspreche und die ProgressBar sichbtbar mache und dann die Liste scrolle bekommen blöderweise auch die anderen Listview Elemente eine ProgressBar. Soweit ich verstanden habe werden die Rows beim Scrollen recycled, aber wie kann ich das Problem umgehen oder ausschliessen?
 
das thema wurde alleine in diesem forum schon mindestens 50 mal besprochen.

wie du schon richtig weißt, werden views wieder verwendet. du musst also in jedem getView deine progresswerte für JEDEN fall setzen.

am beispiel einer textview dessen farbe sich bei jeder 2. reihe ändern soll:

es reicht ein
Wenn 2. reihe - setze Farbe grün
NICHT(!) aus.

du musst auch noch ein
SONST setze Farbe rot
hinzufügen.

ich hoffe das hilft dir
 
  • Danke
Reaktionen: Freddchen
vielen dank für deine schnelle antwort.
ich mache das nun so, dass die progressbar invisible geschaltet wird wenn es sich nicht um die richtige zelle handelt. da ich allerdings in einem getrennten thread den kram ausführen lasse benutze ich auch kein getView. blöderweise fängt aber dann die progressbar an zu flackern sobald ich auch in einer zweiten oder dritten zelle einen downloadprozess starte. gibt es denn hierfür vielleicht eine andere lösung?
 
Ich habe in so einem Fall auf die listview verzichtet und mir die Zeilen selbst gebaut

Gesendet mit der Android-Hilfe.de-App
 
  • Danke
Reaktionen: Freddchen
ja, das habe ich auch mal irgendwo gelesen, aber wie geht das? Ich habe jetzt die einzelne Row als Layout und wie baue ich das zusammen? Ich weiss auf jedenfall das ich um das alles eine ScrollView fassen muss
 
ja einfach das Layout der reihe inflaten und zum Container (zb linearlayout) adden

Container.addview(row)

Usw...
Gesendet mit der Android-Hilfe.de-App
 
  • Danke
Reaktionen: Freddchen
ich mache das bereits über den layout inflater -> LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);

die liste wird komplett dynamisch aufgebaut. scheint wohl ein größeres ding zu sein. muss ich dann ein linear layout nehmen und da die einzelnen rows reinpacken wie zum beispiel textview elemente? dadrum nochmal ein scrollview? brauche ich dann noch den adapter?
 
eben ganz ohne adapter
 
  • Danke
Reaktionen: Freddchen
Vielen Dank für deine Hilfe!
Hat alles super geklappt. Die Performance ist zwar so ähnlich wie beim Einkaufswagen, aber die Hauptsache es klappt. :thumbup:
 

Ähnliche Themen

A
Antworten
10
Aufrufe
1.017
swa00
swa00
M
Antworten
3
Aufrufe
146
moin
M
S
  • Sempervivum
Antworten
2
Aufrufe
605
Sempervivum
S
Zurück
Oben Unten