Reputation: 1559
I have a Gridview.builder in a Widget. When I open the widget I would like to jump immediately to the end of the Grid List.
class _StampsInTravelbookState extends State<StampsInTravelbook> {
ScrollController _scrollController = new ScrollController();
@override
Widget build(BuildContext context) {
if (_scrollController.hasClients) {
_scrollController.jumpTo(_scrollController.position.maxScrollExtent);
}
return GridView.builder(
controller: _scrollController,
reverse: false,
itemCount:
Provider.of<UserPosProv>(context, listen: true).userStamps.length,
shrinkWrap: true,
But I always have the Grid at the beginning.
When I set
reverse: true
the Grid shows the end of the list.
Upvotes: 1
Views: 1770
Reputation: 418
Add userStamps.reverse()
Example
class _StampsInTravelbookState extends State<StampsInTravelbook> {
@override
Widget build(BuildContext context) {
final userStamps = Provider.of<UserPosProv>(context, listen: true).userStamps;
userStamps.reverse(); // This line makes your userStamps list reversed.
return GridView.builder(
itemCount: userStamps.length,
itemBuilder: (context, index) => // Your GridTile here,
shrinkWrap: true,
);
}
}
Upvotes: 2
Reputation: 158
i think this will work for you
_scrollController.animateTo(
_scrollController.position.maxScrollExtent,
duration: Duration(milliseconds: 500),
curve: Curves.fastOutSlowIn);
``
Upvotes: 1