首页 > 解决方案 > 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

标签: dartflutter

解决方案


推荐阅读