如何创建搜索栏和列表(使用FireStore的StreamBuilder和Listview创建)一起滚动?

时间:2020-02-01 21:45:30

标签: listview flutter dart scroll stream-builder

我对扑打/飞镖游戏还比较陌生,我正在尝试使其中一页的格式生效。我想在顶部有一个搜索栏,后跟一个列表(填充有来自Firestore的信息),我想让它们一起滚动而不只是列表。

到目前为止,这是我代码的一部分:

  return Column (children: <Widget>[
    TextField(
        controller: _controller,
        onSubmitted: (String value) async {
          await showDialog<void>(
            context: context,
            builder: (BuildContext context) {
              return AlertDialog(
                title: const Text('Thanks!'),
                content: Text('You typed "$value".'),
                actions: <Widget>[
                  FlatButton(
                    onPressed: () {
                      Navigator.pop(context);
                    },
                    child: const Text('OK'),
                  ),
                ],
              );
            },
          );
        }),
    Expanded(child: buildLearnCards(context))
  ]);
}

Widget buildLearnCards(BuildContext context) {
  return StreamBuilder(

我应该怎么做?

1 个答案:

答案 0 :(得分:0)

我将尝试广泛地描述如何实现此目标,因为这需要一些基础设施和对状态管理的了解。我建议使用provider来管理状态。在提供者/模型的构造器中,从Firestore检索文档列表并将其存储在列表中。然后使用此tutorial根据搜索文本字段过滤文档。每次调用filterSearchResults方法时,请在函数末尾调用notifyListeners()。然后,在this教程中提到的Consumer窗口小部件中的文档列表中,从提供程序中检索文档列表,并根据需要显示在ListView中。希望能对您有所帮助,并提出任何问题。