Flutter 框架外部提供了一个十分玲珑粗劣的组件,专门用于部分组件的刷新,它就是 ValueListenableBuilder。

ValueListenableBuilder须要的元素:

  • 类型为 ValueWidgetBuilder<T> 的 builder, 监听对象的界面展示. 实质是一个办法,Widget Function(BuildContext context, T value, Widget child)
  • ValueListenable<T> 对象 , 监听对象, 这里用它的实现类: 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 的值,就会触发 _buildWithValue 从而将界面数字刷新。  Widget _builderWithValue(BuildContext context , int value , Widget child){    return Text('$value',    style: Theme.of(context).textTheme.headline4,);  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text(widget.title),      ),      body: Center(               child: Column(          mainAxisAlignment: MainAxisAlignment.center,          children: <Widget>[            Text(              'You have pushed the button this many times:',            ),            ValueListenableBuilder<int>(              builder: _builderWithValue,              valueListenable: new_counter,            ),                     ],        ),      ),      floatingActionButton: FloatingActionButton(        onPressed: _incrementCounter,        tooltip: 'Increment',        child: Icon(Icons.add),      ), // This trailing comma makes auto-formatting nicer for build methods.    );  }}

原文参考

Flutter 写的app, 须要源码能够私信~~

  • 简繁火星字体转换
  • 哄女友神器
  • 号码测吉凶
  • 电视节目直播表

最好的笔记软件