Flutter ScrollController maxScrollExtent 等于 0.0

Posted

技术标签:

【中文标题】Flutter ScrollController maxScrollExtent 等于 0.0【英文标题】:Flutter ScrollController maxScrollExtent equals to 0.0 【发布时间】:2021-02-06 06:58:21 【问题描述】:

我为聊天应用程序创建了一个设计,并尝试自动滚动到结束,我使用了这段代码

scrollController.animateTo(
          scrollController.position.maxScrollExtent,
          curve: Curves.easeOut,
  duration: const Duration(milliseconds: 500),
 );

什么也没发生,ofc 列表应用了控制器

child: ListView.builder(
                padding: EdgeInsets.symmetric(vertical: 10),
                shrinkWrap: true,
                controller: scrollController,
                itemCount: chatMessage.length,
                itemBuilder: (context, index) 
                  return ChatBubble(
                    chatMessage: chatMessage[index],
                    isDark: widget._isDark,
                  );
                ,
              )

我尝试打印 maxScrollExtent 以查看是否有问题。 最大和最小滚动范围都等于 0.0。 animateTo 函数也在 postFrameCallback 中调用。 listview 长度始终为 20,目前它是一个简单的列表。

【问题讨论】:

不起作用,最大值和最小值仍然为0.0,没有任何反应 还是一样,我试了一两秒 是的,是true 所以您的列表视图位于其他一些可滚动的小部件中,对吧?很可能这就是为什么你的 maxScrollExtent 永远不会被分配的原因 @pskink 我的列表视图在列内,但我仍然得到最大值和最小值 0.0?你能帮帮我吗? 【参考方案1】:

对我来说,问题在于我的 ListView 在 ScrollView 中。移除 ScrollView 解决了这个问题。

【讨论】:

任何解决方案

以上是关于Flutter ScrollController maxScrollExtent 等于 0.0的主要内容,如果未能解决你的问题,请参考以下文章

Flutter ScrollController maxScrollExtent 等于 0.0

25.Flutter的ListView监听滚动事件之ScrollController

Flutter 之 滚动监听及控制(十九)

Flutter - 使用 StreamBuilder 从 firebase 获取数据后,如何使用 ScrollController 跳转到列表视图的底部?

Flutter - ScrollController 滚动监听及控制

FlutterListView 列表高级功能 ( ScrollController 上拉加载更多 )