Flutter 切换按钮颤振的更改图标
是否有任何方式可以更改按下的切换按钮的图标,或者是否有任何方式可以使图标按钮的功能类似于切换按钮 我尝试了以下方法,但如果按下agian按钮,我想将图标agian更改为第一个图标Flutter 切换按钮颤振的更改图标,flutter,button,dart,Flutter,Button,Dart,是否有任何方式可以更改按下的切换按钮的图标,或者是否有任何方式可以使图标按钮的功能类似于切换按钮 我尝试了以下方法,但如果按下agian按钮,我想将图标agian更改为第一个图标 IconButton( iconSize: 30.0, padding: EdgeInsets.only(left:4,right:4,top:0), icon: Padding( child: 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=true;
});
}
按下=!按下
-表示按下等于当前未按下。所以按下按钮,如果布尔值为false,它将切换为true;如果布尔值为true,它将切换为false
按下=!按下
-表示按下等于当前未按下。所以按下按钮,如果布尔值为false,它将切换为true;如果布尔值为true,它将切换为false 我使用上面相同的代码创建了一个小部件
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;
},
);
},
)
希望它能帮助很多人。我已经用上面相同的代码创建了一个小部件
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;
},
);
},
)
希望它能帮助很多人。对我不起作用,它说
断言失败:布尔表达式不能为null
您需要先在类中创建一个名为pressed的布尔表达式,并将其指定为true或false。所以它不是空的。对我不起作用,它说失败的断言:布尔表达式不能为空
您需要首先在类中创建一个名为pressed的布尔值,并将其指定为true或false。所以它不是空的。