如何在图标按钮Flutter中显示正确的图标



我在AppBar中有一个按钮,我想在点击时更改它的图标,但什么都不起作用。如果您在onPressed中检查图标的类型,则根据应该是哪个按钮来触发该条件,但不会显示。

bool toggle = true;
late Widget searchWidget = IconButton(
onPressed: (){
setState(() {
toggle = !toggle;
});
},
icon: toggle ? const Icon(Icons.search) : const Icon(Icons.cancel),
);    
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
actions: [
searchWidget,
],
title: searchBar
),
body: displayBody,
bottomNavigationBar: _bottomMenu,
);
}

searchWidget更改为方法以获得更新的UI、

Widget searchWidget() => IconButton(
onPressed: () {
setState(() {
toggle = !toggle;
});
},
icon: toggle ? const Icon(Icons.search) : const Icon(Icons.cancel),
);

像一样使用

actions: [
searchWidget(),
],

最新更新