如何在 flutter_swiper 中动态禁用滑动按钮?

How to disable swiper button dynamically in flutter_swiper?

我正在使用flutter_swiper刷图。如您所见,我有两个滑动器我想禁用这两个滑动器箭头动态我该怎么做?

我无法从一开始就禁用它,因为我想在满足某些条件时禁用它

这里有一些示例代码:-

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {


  var eImage = [
    "img/eyes/1.png",
    "img/eyes/2.png",
    "img/eyes/3.png",
  ];

  double height = 200;
  int itemNo;
  double eh = 200;
  double ew = 200;
  double nh = 100;
  double nw = 300;
  double lh = 100;
  double lw = 100;

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        body: Container(
          decoration: BoxDecoration(
            image: DecorationImage(
              image: AssetImage("img/wal.jpg"),
              fit: BoxFit.fill,
            ),
          ),
          child: Container(
            child: Stack(

                            children: <Widget>[
                              Align(
                                alignment: Alignment(0, -0.6),
                                child: Container(
                                  width: ew,
                                  height: eh,
                                  //color: Colors.purple,
                                  child: new SizedBox(
                                    child: Swiper(
                                      itemBuilder:
                                          (BuildContext context, int index) {
                                        return Image.asset(
                                          eImage[index],
                                        );
                                      },
                                      itemCount: eImage.length,
                                      itemWidth: 200,
                                      itemHeight: 200,
                                      control: new SwiperControl(),
                                      layout: SwiperLayout.DEFAULT,
                                      customLayoutOption: CustomLayoutOption(
                                          startIndex: 1, stateCount: 3) ///<--- here i am trying to start from 1st index
                                          .addRotate([
                                        0 / 180,
                                        0.0,
                                        0 / 180
                                      ]).addTranslate([
                                        Offset(-400.0, 0.0),
                                        Offset(0.0, 0.0),
                                        Offset(370, -40.0),
                                      ]),
                                    ),
                                    height: 200,
                                    width: 350,
                                  ),
                                ),
                              ),
                            ],
                          ),
                        ))));
                      }
  }

现在我想借助一个将在特定事件中触发的函数来禁用这些箭头

我通过在布尔标志的帮助下在 运行 时间禁用 iconPrevious:iconNext: 找到了解决方案。如果标志为假,则启用按钮,如果标志为真,则禁用按钮。

示例:

var disable=false;

这是一个标志,如果值为 false,将允许显示滑动按钮

现在,在控制器中设置标志

control: new SwiperControl(
                                 iconPrevious: disable?null:Icons.arrow_back_ios,
                                 iconNext:disable?null:Icons.arrow_forward_ios,
                               ),

使用按钮中的设置状态更改标志。

 next(){
    setState(() {
      disable=true;
    });
}