Ich weiß, dass dies beantwortet wurde und Sie nahmen die Antwort und es war vor mehr als einem Jahr. Aber ein besserer Weg, dies zu tun, ist der Transkript-Modus. Eine Demo finden Sie in der Android API-Demo unter Ansichten> Listen> Transkript.
Sie würden Folgendes in Ihrer Listenansicht im XML-Code festlegen.
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
Es funktioniert immer, wenn Sie notifyDataSetChanged()
anrufen. Sie können stattdessen android:transcriptMode
auf normal
setzen, wenn Sie ein noch besseres Ergebnis für Chat-Anwendungen wünschen: Es wird nur nach unten geblättert, wenn das letzte Element bereits angezeigt wurde. Auf diese Weise können Ihre Benutzer den vorherigen Chat ohne Unterbrechung anzeigen, wenn andere Benutzer chatten.
das funktioniert super. Ich habe 'android: stackFromBottom =" true "' vorher versucht und das Problem ist dann, dass, wenn es nur ein einzelnes Element in meiner Listenansicht gäbe, es am unteren Bildschirmrand wäre. Danke – philipp
Hinweis: Wenn die Höhe des letzten Elements größer als die Höhe der Listenansicht ist, wird der obere Teil des letzten Elements am Anfang der Liste ausgerichtet, d. H. Der untere Teil des Elements wird nicht sichtbar sein. Das ist der Grund, warum die von Ribose beschriebene StackFromBottom-Lösung besser für Chat-ähnliche Funktionen ist. –
Arbeitete wie ein Charme! Ich habe auch versucht, StackFromBottom = "True", aber da ich nicht die Liste löschte es für meine Situation nicht funktioniert. (Zumindest glaube ich das ist der Grund.) – BostonGeorge