0

我的PageView应用中有大量页面。每个页面都非常复杂,有一个PageView和它自己的页面。

我是 Flutter 的新手,我的第一个预感是它需要优化。因此build(),在最外面的功能中,PageView我检查索引,只为当前、上一页和下一页制作整页(我猜滑动动画需要当前页面和它旁边的页面提前构建)。对于其他页面,我只是给它一个空的Container().

这是必要且正确的做法吗?我觉得这是 Flutter 应该做的一个明显的优化,但是我在网上找不到任何相关的讨论。任何建议表示赞赏!

4

2 回答 2

1

不,这不对。ListView, GridView, 和类似的小部件已经被优化为只构建和渲染当前需要的东西。您会在 PageView.builder 描述中得到提示:

使用按需创建的小部件创建一个可滚动列表,逐页工作

PageView我认为常规和 a之间的区别在于PageView.builderPageView启动时初始化所有子项,而PageView.builder被延迟初始化。

于 2020-08-16T09:51:48.063 回答
1

Flutter'sPageView懒洋洋地给itemBuilder你打电话。对于索引,只有在真正需要页面并且您不需要做任何其他事情时才会调用它。但是为了进一步改进,您可以使您的视图层次结构更简单,并防止不必要的构建方法调用。在这里,您可以阅读有关性能最佳实践的更多信息。

于 2020-08-16T09:52:08.257 回答