颤抖着如何避免PageView项被多次调用

时间:2020-05-19 08:29:35

标签: flutter dart

我发现PageView.Builder内的物品如果多次刷到下一页,会被多次呼叫。到目前为止,正如我所了解的那样,用pagecontroller来监听addListeners()的值是有用的。看来这也是为什么我在PageView.Builder中的项目被多次调用的原因。

如何防止这种情况?每次滑动时,我都只希望一次。

这是我的综合浏览量(简化代码,ChildItemGestureDetector包装):

  var currentPageValue = 0.0;
  PageController controller = PageController(viewportFraction: 1, keepPage: false);



@override
  void initState() {
    super.initState();
      controller..addListener(() {
      setState(() {     
        currentPageValue = controller.page;
      });
    });
  }

 body: PageView.builder(
          physics: NeverScrollableScrollPhysics(),
          controller: controller,
           itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
              value: list[i],
              child: Transform(
                child: ChildItem(), <--- This is beeing called multiple times when swiping
                transform: animationController(context, i),
                alignment: animationAlignmentController(context, i),
              ),
            ),
            childCount: list.length,
          ),
        ));

0 个答案:

没有答案