我在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(),
],