Flutter StreamBuilder 实现局部刷新 Widget
Posted 早起的年轻人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter StreamBuilder 实现局部刷新 Widget相关的知识,希望对你有一定的参考价值。
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。
如果你有兴趣 你可以关注一下公众号 biglead 来获取最新的学习资料。
Stream 就是事件流或者管道,是基于事件流驱动设计代码,然后监听订阅事件,并针对事件变换处理响应。
Stream 分单订阅流和广播流,单订阅流在发送完成事件之前只允许设置一个监听器,并且只有在流上设置监听器后才开始产生事件,取消监听器后将停止发送事件.
核心使用代码为:
本页面实现 Demo 效果如下
程序入口
main() {
runApp(MaterialApp(
//不显示 debug标签
debugShowCheckedModeBanner: false,
//显示的首页面
home: DemoStreamBuilder(),
));
}
DemoStreamBuilder 主页面
///代码清单
class DemoStreamBuilder extends StatefulWidget {
@override
_DemoStreamBuilderState createState() => _DemoStreamBuilderState();
}
class _DemoStreamBuilderState extends State<DemoStreamBuilder> {
int _count = 0;
//流Stream 控制器
StreamController<int> _streamController = StreamController();
@override
void dispose() {
//销毁
_streamController.close();
super.dispose();
}
@override
Widget build(BuildContext context) {
//
return Scaffold(
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
_count++;
//发送消息
_streamController.add(_count);
},
),
appBar: AppBar(
title: Text("StreamBuilder"),
),
body: Container(
padding: EdgeInsets.all(30),
child: Column(
children: [
//接收消息
StreamBuilder<int>(
//初始值
initialData: _count,
//绑定Stream
stream: _streamController.stream,
builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
return Text("测试使用 ${snapshot.data}");
},
),
Text("测试使用"),
Text("测试使用"),
],
),
),
);
}
}
本文章 就是通过 StreamBuilder 来实现了刷新 Widget 的功能。
以上是关于Flutter StreamBuilder 实现局部刷新 Widget的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 实现局部刷新 StreamBuilder 实例详解
在页面 flutter,streambuilder,listview 之间导航时列表视图位置丢失
如何在flutter中从streambuilder导航到其他页面?