flutter开发实战-StreamBuilder使用介绍及实例
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: StreamBuilder(
initialData: 0, // 初始数据,可以是任何类型
stream: Stream.periodic(Duration(seconds: 1)), // 每秒发出一个事件
builder: (context, snapshot) {
if (snapshot.hasData) {
return Center(
child: Text(
'Seconds passed: ${snapshot.data}',
style: Theme.of(context).textTheme.headline4,
),
);
} else {
return Center(child: CircularProgressIndicator());
}
},
),
);
}
}
这段代码创建了一个Flutter应用,使用StreamBuilder
来处理一个每秒更新一次的计数器。initialData
属性提供了一个初始的数据状态,而stream
属性则定义了数据更新的来源。每当stream
发出新的数据时,builder
方法就会被调用,并且snapshot
参数会包含最新的数据。根据snapshot
的状态,构建界面显示计数器的当前值或者显示一个进度指示器。这个例子展示了如何在Flutter中使用StreamBuilder
来处理异步数据流。
评论已关闭