基于StreamBuilder列表长度的侦听器

时间:2019-08-20 16:15:18

标签: flutter listener stream-builder

我在Statefull类中有一个StreamBuilder小部件,能够根据TextController中的用户输入来限制结果。现在,我想向流中添加一个侦听器,并检查是否tests.length == 1。如果匹配,则将变量设置为true并重建UI。

现在,我尝试添加一个ValueNotifier(),但显然我们无法在呈现树的其余部分之前重建UI。如何在构建UI后向StreamBuilder添加侦听器以获取长度

  StreamBuilder<List<TestWithTestType>> _buildTestList(BuildContext context) {
    final database = Provider.of<AppDatabase>(context);
    return StreamBuilder(
      stream: database.watchTestsWithTestType(_searchTerm),//database.watchAllTests(),
      builder: (context, AsyncSnapshot<List<TestWithTestType>> snapshot) {
        final tests = snapshot.data ?? List();
        return ListView.builder(
          itemCount: tests.length,
          itemBuilder: (_, index) {
            final itemTest = tests[index];
            return _buildListItem(itemTest.test, itemTest.testType, database);
          },
        );
      },
    );

0 个答案:

没有答案