题记:
大的黄叶子朝下掉
慢慢的,它经过风
经过淡青的天
经过天的刀光
黄灰楼房的尘梦
下来到半路--执剑走天涯,从点滴开始, 精益求精
本文主要讲一个局部刷新的组件,非常实用,提高系统性能
StatefulBuilder提供了局部更新控件的方法,当StatefulWidget中控件树较大时,更新一个属性导致整个树重建,消耗性能,而使用StatefulBuilder能有效的提高性能
Eg:
body: Column(
children: <Widget>[
Text('$num'),
Container(height: 100,
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return GestureDetector(
onTap: () {
///注意:这个方法不会整体触发build(BuildContext context)
/// 只会刷新StatefulBuilder里的widget 即只对StatefulBuilder里的组件起作用
setState(() {
num ++
});
},
child: Text('点击 setState()'),
);
},
),
)
],
),
总结:
- StatefulBuilder 组件里的调用setState,不会影响整体build(BuildContext context) 方法, 只对StatefulBuilder 里面的树形结构起效果,达到局部更新的效果