所以我有一个搜索栏,可以搜索一个装满卡片的列表视图构建器。我的搜索很好,但是当我清除搜索栏时,我无法让它再次返回所有卡片,它只有原始搜索。如果我在哪里再次搜索它然后什么也不返回。因此,如果我搜索 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),
);
}