首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flutter searchDelegate -导航并在另一个页面中显示结果

Flutter searchDelegate -导航并在另一个页面中显示结果
EN

Stack Overflow用户
提问于 2021-02-25 21:51:50
回答 1查看 239关注 0票数 1

这是我到目前为止所做的事情。

点击键盘上的enter键后,flutter正在调用'showResults(context)‘(我想是的)。但是如果我想通过"Navigator.of(context).pushNamed('/rro',arguments: query);“转到另一个屏幕怎么办?

如何在按enter键后停止flutting调用'showResults(context)‘,而不是导航到另一个屏幕?

代码语言:javascript
复制
class DataSearch extends SearchDelegate {
  final data = ['a', 'ab', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
  final recent = ['b', 'c', 'd', 'e'];

  @override
  List buildActions(BuildContext context) {
    return [
      IconButton(
        icon: Icon(Icons.clear),
        onPressed: () {
          query = '';
        },
      ),
    ];
  }

  @override
  Widget buildLeading(BuildContext context) {
    return IconButton(
        icon: Icon(Icons.arrow_back),
      onPressed: () {
        close(context, null);
      },
    );
  }

  @override
  Widget buildResults(BuildContext context) {
    // Return type should be a Widget
    return null;
  }

  @override
  Widget buildSuggestions(BuildContext context) {
    final suggestionList = query.isEmpty
        ? recent
        : data.where((element) => element.startsWith(query)).toList();
    return ListView.builder(
      itemBuilder: (context, index) => ListTile(

        onTap: () {
          // On tap on any ListTile I can easily go to another screen
          Navigator.of(context).pushNamed('/rro', arguments: query);
        },
  
        title: Text(suggestionList[index]),
      ),
      itemCount: suggestionList.length,
    );
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-26 05:41:26

只需覆盖showResults(),并在buildResults中返回一个容器。如果你尝试在这里返回null,这可能会显示一些错误,最好返回一个空的容器。

代码语言:javascript
复制
@override
  Widget buildResults(BuildContext context) => Container();

  @override
  void showResults(BuildContext context) {
    Navigator.of(context).popAndPushNamed(
      '/rro',
      arguments: query,
    );
    super.showResults(context);
  }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66369864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档