Flutter statefulbuilder
时间: 2024-12-23 21:17:15 浏览: 4
Flutter 中的 `StatefulWidget` 和 `StatelessWidget` 是构建用户界面的基本组件。然而,如果你需要在组件的状态改变时重建视图,这时可以使用 `StateBuilder` 或者更具体的 `StatefulWidget` 的 `build` 方法中的 ` setState` 函数。
`StateBuilder` 是一个特殊的函数,它允许你在每次组件状态改变时重新构建视图。当你有一个依赖于状态计算的结果的 Widget,并希望这个结果随着状态的变化而更新时,`StateBuilder` 就非常有用。它的基本用法是在一个 `Builder` 回调里返回一个新的 `Widget`,这个回调会在每次 `setState` 被调用时执行。
下面是一个简单的例子:
```dart
class StatefulWidgetExample extends StatefulWidget {
@override
_StatefulWidgetExampleState createState() => _StatefulWidgetExampleState();
}
class _StatefulWidgetExampleState extends State<StatefulWidgetExample> {
String counter = '0';
void incrementCounter() {
setState(() {
counter = int.parse(counter) + 1;
});
}
@override
Widget build(BuildContext context) {
return StateBuilder(
builder: (BuildContext context, previousState) {
// 这里可以看到,每次counter变化,都会创建一个新的计数器 widget
return Text('Count: $counter');
},
);
}
}
```
在这个例子中,当点击按钮增加计数器时,`incrementCounter` 会改变状态并触发新的 `build`,从而显示更新后的计数值。
阅读全文