1. Freddchen, 09.02.2012 #1
    Freddchen

    Freddchen Threadstarter Neuer Benutzer

    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?
     
  2. swordi, 09.02.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    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
     
    Freddchen bedankt sich.
  3. Freddchen, 09.02.2012 #3
    Freddchen

    Freddchen Threadstarter Neuer Benutzer

    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?
     
  4. swordi, 09.02.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Ich habe in so einem Fall auf die listview verzichtet und mir die Zeilen selbst gebaut

    Gesendet mit der Android-Hilfe.de-App
     
    Freddchen bedankt sich.
  5. Freddchen, 09.02.2012 #5
    Freddchen

    Freddchen Threadstarter Neuer Benutzer

    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
     
  6. swordi, 09.02.2012 #6
    swordi

    swordi Gewerbliches Mitglied

    ja einfach das Layout der reihe inflaten und zum Container (zb linearlayout) adden

    Container.addview(row)

    Usw...
    Gesendet mit der Android-Hilfe.de-App
     
    Freddchen bedankt sich.
  7. Freddchen, 10.02.2012 #7
    Freddchen

    Freddchen Threadstarter Neuer Benutzer

    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?
     
  8. swordi, 10.02.2012 #8
    swordi

    swordi Gewerbliches Mitglied

    eben ganz ohne adapter
     
    Freddchen bedankt sich.
  9. Freddchen, 10.02.2012 #9
    Freddchen

    Freddchen Threadstarter Neuer Benutzer

    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: