它在列表中的最后一个元素之前停止。有没有一种方法可以到达最后一个元素的结束容器
controller ..animateTo( controller.position.maxScrollExtent, curve: Curves.easeIn, duration: const Duration(milliseconds: 300), ); });```
t9aqgxwy1#
使用无动画解决了问题
Timer(Duration(milliseconds: 500), () { controller.jumpTo(controller.position.maxScrollExtent); });
cnjp1d6j2#
在我的例子中,问题是元素的大小不相等,直到渲染才知道大小。因此,ListView滚动到其初始估计的maxScrollExtent,但在滚动时,元素被渲染,新的maxScrollExtent更大。我通过给它一个更大的值来破解它:
ListView
maxScrollExtent
attachmentsScrollController.animateTo( attachmentsScrollController.position.maxScrollExtent * 2, duration: Duration(milliseconds: 300), curve: Curves.easeInOut);
gywdnpxw3#
我认为这是最好的功能滚动到底部一个很好的动画
scrollToBottom() { if (_chatController.hasClients) { Future.delayed(const Duration(milliseconds: 500)).then((value) { _chatController.animateTo( _chatController.position.maxScrollExtent, duration: const Duration(milliseconds: 200), curve: Curves.fastOutSlowIn, ); }); } }
axr492tv4#
我有同样的问题与CustomeScrollView小部件,我解决了这个.
CustomScrollView( controller: Get.find<ChatController>(tag: 'chatDetail') .scrollController .value, reverse: true, keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag, physics: ClampingScrollPhysics(), cacheExtent: 99999, // <-- here !!! ADD THIS CODE slivers: [ ChatList( isQuestion: isQuestion, postCreatedAt: postCreatedAt, title: title, ), ], ),
我的滚动功能和我们之前说的一样正常。
void chatScrollUp() async { await scrollController.value.animateTo( scrollController.value.position.maxScrollExtent, duration: Duration( milliseconds: (scrollController.value.position.maxScrollExtent / 2).round()), curve: Curves.easeOutCirc);}
r6hnlfcb5#
对我有用的是:
void scrollAnimateToEnd(ScrollController controller) { Future.delayed(const Duration(milliseconds: 400)).then((_) { try { controller .animateTo( controller.position.maxScrollExtent, duration: const Duration(seconds: 1), curve: Curves.fastOutSlowIn, ) .then((value) { controller.animateTo( controller.position.maxScrollExtent, duration: const Duration(milliseconds: 200), curve: Curves.easeInOut, ); }); } catch (e) { print('error on scroll $e'); } });
}
gpfsuwkq6#
我通过使用SingleChildScrollView而不是ListView解决了这个问题。
6条答案
按热度按时间t9aqgxwy1#
使用无动画解决了问题
cnjp1d6j2#
在我的例子中,问题是元素的大小不相等,直到渲染才知道大小。因此,
ListView
滚动到其初始估计的maxScrollExtent
,但在滚动时,元素被渲染,新的maxScrollExtent
更大。我通过给它一个更大的值来破解它:gywdnpxw3#
我认为这是最好的功能滚动到底部一个很好的动画
axr492tv4#
我有同样的问题与CustomeScrollView小部件,我解决了这个.
我的滚动功能和我们之前说的一样正常。
r6hnlfcb5#
对我有用的是:
}
gpfsuwkq6#
我通过使用SingleChildScrollView而不是ListView解决了这个问题。