滚动控制器未附加到任何滚动视图(滑动器)

时间:2019-10-29 08:38:57

标签: flutter dart flutter-layout flutter-dependencies flutter-test

我正在使用Swiper包来对图像实现轮播效果。 我试图通过将Swiper函数传递给它的孩子来更新callback的当前索引。

但是当我尝试调用该函数时,它将返回此“ scrollcontroller not attached”错误。

我添加了SwiperController,但还是一样。

这是我的代码:

SwiperController swiperController;

  @override
  Widget build(BuildContext context) {
    return Container(
        height: MediaQuery.of(context).size.height,
        width: MediaQuery.of(context).size.width,
        color: Colors.black,
        child: Swiper(
          controller: swiperController,
          index: _index,
          scrollDirection: Axis.horizontal,
          itemBuilder: (BuildContext c, int i) {
            return StoriesPerUser(
              storiesList: widget.storiesList,
              selectedIndex: i,
              updateFunction: callBack,
            );
          },
          itemCount: widget.storiesList.length,
          loop: false,
          duration: 1000,
        ));
  }

  callBack() {
    setState(() {
     _index++; 
    });
  }

Please help.

2 个答案:

答案 0 :(得分:1)

答案

如果你们中的任何一个想要使用此软件包,并且您想要一个类似于我的功能,而不是更新索引,只需使用SwiperController的一种方法即next()

这解决了我的问题:

callBack() {
    setState(() {
      swiperController.next();
    });
  }

答案 1 :(得分:0)

更新

似乎SwiperController没有被实例化和初始化。您可以通过重写initState方法来做到这一点:

@override
void initState() {
  controller = SwiperController();
  controller.length = 10
  //controller.fillRange(0, 10, SwiperController());
  super.initState();
}