我创建了一个简单的动画,以查看3个不同的浮动动作按钮,它们是通过列表生成的,现在我希望它们做不同的事情,但是如何选择要执行的操作呢?
现在,我尝试让第一个晶圆厂对TempImg()做Navigator.push
,但是相反,所有按钮都转到了TempImg(),我希望第一个按钮达到那个,第二个就做其他东西等等...
floatingActionButton: new Column(
mainAxisSize: MainAxisSize.min,
children: new List.generate(icons.length, (int index) {
Widget child = new Container(
height: 70.0,
width: 56.0,
alignment: FractionalOffset.topCenter,
child: new ScaleTransition(
scale: new CurvedAnimation(
parent: _controller,
curve: new Interval(
0.0, 1.0 - index / icons.length / 2.0,
curve: Curves.easeOut),
),
child: new FloatingActionButton(
child: new Icon(icons[index]),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TempImg(),
));
}),
));
return child;
}).toList()
..add(
new FloatingActionButton(
child: new AnimatedBuilder(
animation: _controller,
builder: (BuildContext context, Widget child) {
return new Transform(
transform: new Matrix4.rotationZ(
_controller.value * 0.5 * math.pi),
alignment: FractionalOffset.center,
child: new Icon(_controller.isDismissed
? Icons.add
: Icons.close),
);
},
),
onPressed: () {
if (_controller.isDismissed) {
_controller.forward();
} else {
_controller.reverse();
}
}),
))
答案 0 :(得分:1)
您可以使用项目智能点击事件,如下代码:
FloatingActionButton(
child: new Icon(icons[index]),
onPressed: () {
if(index == 1) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TempImg(),
));
} else if(index == 2) {
} else if(index == 3) {
}
} /* enter code here */