[英]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.