问题
I'm using onpressed() to scroll down to bottom of the List view, but i want to achieve that without Pressing the botton,
It must autoscroll for every screen opening. I tried to put it inside initState() its not working but if i press the button it wokrks
How to make it autoScroll?
Working code:
floatingActionButton: new FloatingActionButton(child:
Icon(Icons.arrow_downward),onPressed:_hola,)
_hola(){
print("inti state started successfully");
controller1.animateTo(
controller1.position.maxScrollExtent,
duration: const Duration(milliseconds: 10),
curve: Curves.easeOut,);
}
Non Working Code: //This code prints successfully,but not really calling the function
class HomeState extends State<MyNewMessages> {
@override
void initState()
{
super.initState();
print("hola is scrolling");
_hola;
}
);
}
Before Pressing Floating Button After Pressing Floating Button
回答1:
When building your ListView or adding an item (not sure how you're doing it), use SchedulerBinding.instance.addPostFrameCallback
to change the scroll position on the next frame.
SchedulerBinding.instance.addPostFrameCallback((_) {
controller1.animateTo(
controller1.position.maxScrollExtent,
duration: const Duration(milliseconds: 10),
curve: Curves.easeOut,);
});
}
来源:https://stackoverflow.com/questions/51068541/flutterscrolling-to-bottom-automatically-when-the-screen-opens