3

所以我有一个搜索栏,可以搜索一个装满卡片的列表视图构建器。我的搜索很好,但是当我清除搜索栏时,我无法让它再次返回所有卡片,它只有原始搜索。如果我在哪里再次搜索它然后什么也不返回。因此,如果我搜索 1,它将显示卡 1,但如果我搜索 2,它将不会显示卡 2 或我搜索的任何其他内容。

这可能是由于我的结构,但搜索栏也始终位于屏幕顶部,而不是随着卡片滚动。

我也在尝试添加滚动以刷新,但由于无法返回小部件,因此无法弄清楚如何再次返回 buildList。对不起,如果这是一个大问题!任何关于任何事情的建议或提示将不胜感激!谢谢。

  Widget build(BuildContext context) => Scaffold(
    body: Column(
      children: <Widget>[
        Container(
          margin: const EdgeInsets.fromLTRB(16, 16, 16, 0),
          child: TextField(
            controller: controller,
            decoration: InputDecoration(
                prefixIcon: const Icon(Icons.search),
                hintText: 'Post Title',
                border: OutlineInputBorder(
                  borderRadius: BorderRadius.circular(20),
                  borderSide: const BorderSide(color: Colors.black),
                )),
            onChanged: searchPost,
          ),
        ),
        Expanded(
          child: RefreshIndicator(
            color: Color(0xffBE863C),
            onRefresh: _refresh,
            child: buildList(),
          ),
        ),
      ],
    ),
  );

 void searchPost(String query) {
    final suggestions = DLNews.where((News) {
    final postTitle = News.name.toLowerCase();
    final input = query.toLowerCase();

    return postTitle.contains(input);
   }).toList();

   setState(() => DLNews = suggestions);
  }

 Future<void> _refresh() {
    return Future.delayed(
     Duration(seconds: 0),
    );
 }
4

0 回答 0