dart - StreamBuilder 的列表长度?
问题描述
在我的颤振应用程序的标题中,我想Chip
在正文中显示列表中的项目数。body 的 build 方法是使用 aStreamBuilder
创建列表。
问题是列表的长度直到AppBar
构建完成并StreamBuilder
完成构建列表之后才知道。
由于我无法setState
从构建函数中调用 (),因此在完成构建列表后如何获取AppBar
要更新的值StreamBuilder
?
我正在研究这个例子。这是代码片段:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Streams'),
elevation: 1.0,
),
body: Container(
child: _buildContent(),
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: _createCounter,
),
);
}
Widget _buildContent() {
return StreamBuilder<List<Counter>>(
stream: stream,
builder: (context, snapshot) {
return ListItemsBuilder<Counter>(
items: snapshot.hasData ? snapshot.data : null,
itemBuilder: (context, counter) {
return CounterListTile(
key: Key('counter-${counter.id}'),
counter: counter,
onDecrement: _decrement,
onIncrement: _increment,
onDismissed: _delete,
);
},
);
},
);
}
我找到了一种解决方法,方法是创建第二个来StreamBuilder
更新Chip
. 让多个s 观看同一个流AppBar
是一种好习惯吗?StreamBuilder
解决方案
推荐阅读
- kotlin - 将snackbar移到底部导航栏jetpack compose上方
- c++ - 指向结构的指针向量
- ms-access - 两个表列合并为一个查询
- apache-spark - 如何引发异常以退出 Synapse Apache Spark 笔记本
- c++ - 条件变量 + 互斥体 + pthreads 的 C++ 生产者消费者问题
- google-analytics - 即使在页面重新加载后如何跟踪 GTM 事件
- javascript - 如何解决reactjs中的重载错误
- python - Django:POST 和 GET 请求并在模板上呈现
- react-native - 如何知道 react native 的每个组件的屏幕空闲?
- cypress - 测试按钮的状态