首页 > 解决方案 > 多次调用 AnimatedBuilder

问题描述

我有以下代码。newList包含从中获取的数据snapshot

Widget _buildListChild(AsyncSnapshot<ModelHolidays> snapshot) {
    var data = snapshot.data.d;
    newList = json.decode(data.getholidaylist);

    return ListView.builder(
        padding: EdgeInsets.only(top: size.getSizePx(10)),
        scrollDirection: Axis.vertical,
        shrinkWrap: true,
        physics: const BouncingScrollPhysics(),
        itemCount: newList.length,
        controller: scrollContainer,
        itemBuilder: (context, index) {
          final int count = 1; 
          final Animation<double> animation =
              Tween<double>(begin: -1.0, end: 1.0).animate(
            CurvedAnimation(
              parent: holidayAnimationController,
              curve: Interval((1 / count) * index * 2, 1.0,
                  curve: Curves.fastOutSlowIn),
            ),
          );

          holidayAnimationController.forward();

          return AnimatedBuilder(
            animation: holidayAnimationController,
            builder: (BuildContext context, Widget child) {
              print("######################");
              print("Animated Builder");
              print("######################");
              return Container();

            },
          );
        });
  }

问题

newList仅从 API 返回一条记录。不过AnimatedBuilder好像有点问题。builder, 中的打印语句AnimatedBuilder实际上被打印了 70 多次。这是正常的吗?如果不是如何解决?我对颤振相当陌生。

谢谢

标签: flutter

解决方案


推荐阅读