是否总能在按下时更改切换按钮的图标?还是总能使图标按钮功能像切换按钮一样?
我尝试了以下方法,但是如果按钮按下agian,我想将Icon agian更改为第一个。
IconButton( iconSize: 30.0,
padding: EdgeInsets.only(left:4,right:4,top:0),
icon: Padding(
child: pressed ==true ?
Icon(Icons.start):Icon(Icons.stop)
),
onPressed: () {
setState(() {
pressed=true;
});
}
答案 0 :(得分:1)
IconButton( iconSize: 30.0,
padding: EdgeInsets.only(left:4,right:4,top:0),
icon: Padding(
child: pressed ==true ?
Icon(Icons.start):Icon(Icons.stop)
),
onPressed: () {
setState(() {
pressed = !pressed;
});
}
pressed = !pressed
-与所说的按下等于当前不按下一样。因此在按下时,如果boolean为false,它将切换为true;如果boolean为true,则将切换为false。
答案 1 :(得分:1)
我使用上面相同的代码创建了一个小部件。
class IconToggleButton extends StatelessWidget {
final bool isSelected;
final Function onPressed;
IconToggleButton({this.isSelected, this.onPressed});
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
child: IconButton(
iconSize: 30.0,
padding: EdgeInsets.all(5),
icon: Padding(
padding: EdgeInsets.zero,
child: isSelected == true
? Icon(FontAwesome.sort_name_up)
: Icon(FontAwesome.sort_name_down)),
onPressed: () {
onPressed();
},
),
);
}
}
用法:
创建类变量
bool isSelected = false;
使用小部件如下:
IconToggleButton(
isSelected: isSelected,
onPressed: () {
setState(
() {
isSelected = !isSelected;
},
);
},
)
希望对很多人有帮助。