Wenn ich Elemente am Ende einer Rasteransicht hinzufüge, möchte ich, dass der Benutzer sieht, was hinzugefügt wurde. Hier ist ein Beispiel dafür, was ich meine:Wie scrollt man automatisch zum Ende der Rasteransicht?
Der Anwender fügt Elemente durch Drücken auf das Symbol +. Das Problem ist, dass es nach Punkt 14 keine Rückmeldung gibt, um anzuzeigen, dass ein Element hinzugefügt wurde. Wie kann ich automatisch zum letzten Element blättern, wenn es zur Liste hinzugefügt wird?
(Bonuspunkte: wie kann ich navigieren Sie zu dem n-ten Element, wenn es irgendwo in der Mitte der Liste hinzugefügt wird)
Here is an answer for scrolling to the end of a list view, aber wenn ich die Reihenfolge der Liste umkehren, dann wird es seltsam aussehen zu haben manchmal "fehlende" Elemente in der oberen Reihe.
Hier ist mein Code:
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
@override
Widget build(BuildContext context) {
List items = [];
for (int i = 0; i < _counter; i++) {
items.add(new Text("Item $i"));
}
return new Scaffold(
appBar: new AppBar(title: new Text("Scroll To End Test")),
body: new GridView.extent(
primary: true,
maxCrossAxisExtent: 150.0,
children: items,
),
floatingActionButton: new FloatingActionButton(
onPressed:() {
setState(() {
_counter++;
});
},
tooltip: 'Increment',
child: new Icon(Icons.add),
),
);
}
}
Danke! Ich wusste nichts über _scrollController.position.maxScrollExtent – Mark
YW - überprüfen Sie den weiteren Hinweis auf Scroll-to-Point –