android - Flutter - 如何在滚动出视图后停止重新渲染 ListView.builder
问题描述
我正在使用 Flutter 和 Dart 构建一个 Workout Tracker 应用程序。在跟踪页面上是练习列表和完成图标,单击时会更改其颜色(以显示您已完成该组)。图标状态在文件中本地更改。
所以问题是当我向下滚动时,上面的项目恢复到原来的状态。长话短说,我不希望图标按需重新渲染并保存它们的状态,直到我想要。
尝试了 AutomaticKeepAliveStateMixin,但它似乎不起作用。我是编码的新手,所以也许我实施错了。
class _ExerciseInputState extends State<ExerciseInput>
with AutomaticKeepAliveClientMixin {
@override
bool get wantKeepAlive => true;
@override
Widget build(BuildContext context) {
super.build(context);
var deviceSize = MediaQuery.of(context).size;
return ListView.builder(
itemCount: widget.loadedRoutine.exercises.length,
itemBuilder: (BuildContext context, int i) {
return buildExerciseContainer(
widget.loadedRoutine.exercises[i].title,
widget.loadedRoutine.exercises[i].sets,
widget.loadedRoutine.exercises[i].reps,
deviceSize,
context);
},
);
}
}
没有错误信息。
解决方案
推荐阅读
- katalon-studio - 多次调用对象时不生成新的动态ID
- java - 如何对数组进行排序,使其与另一个数组具有相同的顺序?
- r - 使用rep函数和for循环处理在R中输出变量对的语法
- mysql - 使用 Express 将多个 SQL 结果返回到 .handlebars
- swift - 如何使用具有许多链接到独特页面的点击点的大图像?
- jquery - jquery 捕获在 .on() 之前触发的事件
- python - 无法在 Gcloud 上部署 Flask 应用程序:ModuleNotFoundError:没有名为“flask_bcrypt”的模块
- python - 如何删除在两列中具有重复值对的行?
- visual-studio - 解决方案使用 PackageReference,但在引用 packages.config 时出现编译错误
- python - 如何在 sklearn dbscan 中使用多核?