Performance ListView.builder上initialScrollOffset的性能问题

Performance ListView.builder上initialScrollOffset的性能问题,performance,flutter,flutter-layout,Performance,Flutter,Flutter Layout,我正在使用ListView.builder和一些Card和Text小部件。当点击一个按钮时,我正在打开一个包含上述列表的页面,并滚动到此列表中的特定小部件。我通过将自定义的ScrollController附加到ListView.builder来实现这一点 ListView.builder( itemCount: count, controller: ScrollController(initialScrollOffset: height), itemBuilder: (c

我正在使用
ListView.builder
和一些
Card
Text
小部件。当点击一个按钮时,我正在打开一个包含上述列表的页面,并滚动到此列表中的特定小部件。我通过将自定义的
ScrollController
附加到
ListView.builder
来实现这一点

ListView.builder(
    itemCount: count,
    controller: ScrollController(initialScrollOffset: height),
    itemBuilder: (context, index) {
        return isHeader(index) ? Text(...) : Card(...); 
    }
)
高度
基于小部件的数量及其固定高度。它正在工作,但性能很差,按下按钮打开页面时会导致约1秒的延迟。如果我不使用
initialScrollOffset
性能很好。性能下降的原因是,在达到
initialScrollOffset
之前,所有先前的项都会被构建


是否可以在不构建之前的所有项目的情况下在特定位置初始化列表?如果没有,是否有一个很好的解决方法来以流畅的方式实现此行为?

ListView
有一个名为
itemExtent
的属性,指定应该显著提高性能的属性。它基本上期望列表中的行的高度

例如代码

ListView.builder(
    itemCount: count,
    controller: ScrollController(initialScrollOffset: height),
    itemBuilder: (context, index) {
        return Card(...); 
    },
    itemExtend: 30.0 // Height of the row
)

欲了解更多信息,请查看。

我可以知道
项目计数吗?@10101010大约60你知道
卡的高度(每行的高度)吗?@10101010是的,我应该提到我在列表中有两种类型的小部件(
文本
元素),因此有两种不同的元素高度。。我觉得这不相关。我尝试使用
itemExtent
,确实有了性能改进,但遗憾的是,它不适合我的用例。我想知道
卡(或列表中的行)中是怎么让60个列表变慢的。解决方法可能是什么都不显示(或加载程序)首先显示列表,然后显示列表。每个
都包含两个AutoSizeText小部件(),这使其速度变慢。如何检测完成的构建并滚动以从显示加载程序切换到列表?我开始使用ScrollContainers的
animateTo
而不是
initialScrollOffset
,它从初始构建中获取工作负载,并将其分布在一个时间范围内。至少这种滞后已经消失了。