[英]Change Icon of toggle button flutter
无论如何要在按下时更改切换按钮的图标,或者无论如何要使图标按钮 function 像切换按钮一样?
我尝试了以下方法,但如果按钮按下 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;
});
}
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 为假,按下它将切换为真,如果 boolean 为真,则为假。
我使用上面相同的代码创建了一个小部件。
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();
},
),
);
}
}
用法:
创建 class 变量
bool isSelected = false;
使用小部件如下:
IconToggleButton(
isSelected: isSelected,
onPressed: () {
setState(
() {
isSelected = !isSelected;
},
);
},
)
希望它会帮助很多人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.