我正在使用 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,
),
),
),
],
),
))));
}
}
现在,我想借助将在特定事件下触发的功能来禁用那些箭头
答案 0 :(得分:1)
我已经找到了解决方案,可以在运行时借助布尔标志禁用iconPrevious:
和iconNext:
。如果flag为false,则启用按钮;如果flag为true,则禁用按钮。
示例:
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;
});
}