flutter - GridView 保留所有元素,而不是在屏幕上构建它们
问题描述
我有一个网格视图,它显示了许多不同服务的修复状态,并在服务出现故障时为它们着色和/或自动打开网页。问题是屏幕外的元素没有被检查,这更有效,但在这种情况下不是所需的。
我猜它的行为类似于 android 中的 RecyclerView?
我想构建检查服务运行状况的小部件,即使它们在屏幕上不可见。
目前,直到我将它们滚动到屏幕中的那一刻,服务才开始被检查。
解决方案
假设您当前正在使用GridView.builder
构造函数,我建议使用“普通”GridView
构造函数(带有children
属性)。由于GridView.builder
出于效率原因仅构建当前可见的元素,因此未在屏幕上呈现的元素将不会运行您的后端逻辑。
有关更多信息,请参阅官方文档:
[GridView.builder] 构造器适用于具有大量(或无限)子级的网格视图,因为仅对那些实际可见的子级调用构建器。
在这里你会找到替代品:
最常用的网格布局是 GridView.count,它创建一个在横轴上具有固定数量的瓦片的布局,以及 GridView.extent,它创建一个具有最大横轴范围的瓦片的布局。
推荐阅读
- opencv - 自训练 HAAR 分类器导致令人失望的低准确率
- http - 将文件中的 GET 参数解析为 Go 中的 NewRequest 调用
- python - 我们有什么方法可以在 sklearn 中使用重心进行局部线性嵌入吗
- mysql - 每小时创建一个具有唯一名称的新列
- three.js - 如何在三反应纤维中从画布中获取所有 Object3D
- node.js - 为什么MongoClient返回404
- performance - 卡夫卡消费者滞后与fluntd
- r - Adding text on each bar in horizontal bar plot in ggplot
- google-sheets - 如何在 Google 表格中批量编辑条件格式规则?
- pytorch - 我可以在 Seldon 上部署 PyTorch 训练的模型吗?