Flutter 框架内部提供了一个非常小巧精致的组件,专门用于局部组件的刷新,它就是 ValueListenableBuilder。
ValueListenableBuilder需要的元素:
- 类型为 ValueWidgetBuilder 的 builder, 监听对象的界面展现. 本质是一个方法,
Widget Function(BuildContext context, T value, Widget child)
- ValueListenable 对象 , 监听对象, 这里用它的实现类:
ValueNotifier
使用
ValueListenableBuilder<int>(
builder: _builderWithValue,
valueListenable: new_counter,
),
完整代码
class _MyHomePageState extends State<MyHomePage> {
// ValueNotifier是ValueListenableBuilder 需要传入的ValueListenable<T> 抽象类的实现 . 接收一个泛型.
final ValueNotifier<int> new_counter = ValueNotifier<int>(0);
void _incrementCounter() {
new_counter.value += 1;
}
// 每当监听的对象值发生变化时,会触发builder 方法进行刷新。
// 如下, 在点击时只需要改变 new_counter.value 的值&