首页 > 解决方案 > 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);
      },
    );
  }
}

没有错误信息。

标签: androidiosflutterdart

解决方案


推荐阅读