Ich habe eine scrollbare ListView
, wo die Anzahl der Elemente dynamisch ändern kann. Immer wenn ein neues Element am Ende der Liste hinzugefügt wird, möchte ich programmgesteuert die ListView
bis zum Ende scrollen. (Zum Beispiel so etwas wie eine Chat-Nachricht Liste, wo neue Nachrichten können am Ende hinzugefügt werden)Programmgesteuertes Scrollen bis zum Ende einer ListView
Meine Vermutung ist, dass ich brauchen würde, ein ScrollController
in meinem State
Objekt erstellen und manuell an den ListView
Konstruktor übergeben, so kann ich später Anruf animateTo()
/jumpTo()
Methode auf dem Controller. Da ich jedoch den maximalen Scroll-Offset nicht einfach bestimmen kann, scheint es unmöglich, einfach einen scrollToEnd()
Operationstyp auszuführen (während ich 0.0
einfach passieren kann, damit er zur Anfangsposition scrollt).
Gibt es einen einfachen Weg, dies zu erreichen?
Die Verwendung von reverse: true
ist keine perfekte Lösung für mich, weil ich möchte, dass die Elemente an der Spitze ausgerichtet werden, wenn nur eine kleine Anzahl von Elementen in das ListView
Ansichtsfenster passen.
Dies hat den Trick gemacht. In meinem speziellen Fall musste ich verschachtelte Spalten verwenden, um die ListView in ein Expanded-Widget einzufügen, aber die Grundidee ist dieselbe. – yyoon
Ich kam auf der Suche nach einer Lösung, wollte nur erwähnen, dass die andere Antwort ein besserer Weg, dies zu erreichen ist - https://stackoverflow.com/questions/44141148/how-to-get-full-size-of- a-scrollcontroller –
Ich stimme zu, diese Antwort (die ich auch geschrieben habe) definitiv besser. –