gpt4 book ai didi

flutter - setState如何只重建AppBar?

转载 作者:IT王子 更新时间:2023-10-29 07:09:16 24 4
gpt4 key购买 nike

我有一个脚手架,其中 AppBar 我有一个 IconButton,我想像开关一样工作:按下时它会改变其状态。

虽然使用 bool 和 setState 很容易实现,但整个小部件是在 setState 上重新绘制的,具有以下内容:

actions: <Widget>[
IconButton(icon:Icon(Icons.favorite,
color: estaMarcada ? K.color_highlight : K.color_background),
onPressed: () { setState(()
{estaMarcada = not estaMarcada;});},
),

我只想重绘图标(或 AppBar)而不是整个脚手架。

有什么想法吗?

提前致谢。

最佳答案

将您的 AppBar 提取到单独的 StatefulWidgetsetState()

class MyAppBar extends StatefulWidget {

MyAppBar() : super();

@override
_MyAppBarState createState() => _MyAppBarState();
}

class _MyAppBarState extends State<MyAppBar> {
@override
Widget build(BuildContext context) {
return AppBar(
title: Row(
children: <Widget> [
Icon(K.icon),
Text(K.title),
]),
actions: <Widget>[
IconButton(
icon:Icon(Icons.favorite,
color: appData.getMark() ? K.color_highlight : K.color_background),
onPressed: () {
setState(() {
appData.setMark();
});
},
),
]
);
}
}

关于flutter - setState如何只重建AppBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56621840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com