轮播无法在Flutter中自动滑动

时间:2019-05-03 14:28:30

标签: flutter

我正在尝试创建具有自动滑动功能的旋转木马。在我遇到“用PageView生成PageController.page之前无法访问它”的问题

我可以参考https://github.com/jlouage/flutter-carousel-pro/issues/21

来解决它

但是不幸的是,旋转木马无法自动滑动。请帮助我。

在carousel_pro.dart中,我进行了如下更改:

final _controller = new PageController();

@override
void initState() {
super.initState();
if (_controller.hasClients) {
  if (widget.autoplay) {
    new Timer.periodic(widget.autoplayDuration, (_) {
      if (_controller.page.round() == widget.images.length-1)  {
        _controller.animateToPage(
          0,
          duration: widget.animationDuration,
          curve: widget.animationCurve,
        );
      } else {
        _controller.nextPage(
            duration: widget.animationDuration,
            curve: widget.animationCurve);
      }
    });
  }
 }
}

1 个答案:

答案 0 :(得分:0)

您必须检查小部件是否有图像。...

 if (widget.images != null && widget.images.isNotEmpty) {
  if (widget.autoplay) {
    Timer.periodic(widget.autoplayDuration, (_) {
      if (_controller.hasClients) {
        if (_controller.page.round() == widget.images.length - 1) {
          _controller.animateToPage(
            0,
            duration: widget.animationDuration,
            curve: widget.animationCurve,
          );
        } else {
          _controller.nextPage(
              duration: widget.animationDuration,
              curve: widget.animationCurve);
        }
      }
    });
  }
}

此外,您还必须重新安装该应用程序。 它对我有用!!!