如何解决为什么我的ScrollController在来回导航或重新启动时会引发错误?
我有一个ListView.builder()
,它具有一个将在animateto(index: 50,......)
方法中buidler
进行操作的控制器,它可以完美地工作,可以制作动画并转到索引,但是唯一的问题是当我转到另一个屏幕并返回到listView.builder()
或重新启动时,会引发错误:
'package:flutter/src/widgets/scroll_activity.dart': Failed assertion: line 613 pos 15: 'to != null': is not true.
据我了解,animateto()
中有一个方法为null。这是ScrollController()
:
ScrollController scrollController = ScrollController();
scrollController.animateTo(
scrollController.position.maxScrollExtent,duration: Duration(milliseconds: 1000),curve: Curves.easeOut);
更新
我现在确定是引发该错误的是scrollController的位置,我检查了库,并且to
参数是它将设置动画的位置。
修改 ListView.builder()代码:
ListView.builder(
controller: scrollController,reverse: true,itemCount: snapshot.data.documents.length,itemBuilder: (context,i) {
var link = snapshot.data.documents[i].data['Link'];
var uploader =
snapshot.data.documents[i].data['Uploader'];
var likes = snapshot.data.documents[i].data['Likes'];
var like = likes.toString();
bool liked;
if (int.parse(like) > 0) {
liked = true;
} else if (int.parse(like) == 0) {
liked = false;
}
final videoPlayerController =
VideoPlayerController.network(link);
chewieController = ChewieController(
allowMuting: true,autoInitialize: true,deviceOrientationsAfterFullScreen: orientation,allowFullScreen: true,aspectRatio: 16 / 9,videoPlayerController: videoPlayerController,);
scrollController.animateTo(
scrollController.position.maxScrollExtent,curve: Curves.easeOut);
return link != null
? SingleChildScrollView(
child: Column(
children: [
Chewie(
controller: chewieController,),..............................
完全错误
══╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
The following assertion was thrown while dispatching notifications for VideoPlayerController:
setState() called after dispose(): _MaterialControlsState#da2c1(lifecycle state: defunct,not
mounted)
This error happens if you call setState() on a State object for a widget that no longer appears in
the widget tree (e.g.,whose parent widget no longer includes the widget in its build). This error
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。