Flutter 当使用搜索委托(颤振)时,如何在buildResult方法中调用this.close?

Flutter 当使用搜索委托(颤振)时,如何在buildResult方法中调用this.close?,flutter,dart,Flutter,Dart,我有一个非常简单的SearchApp,它有一个带有搜索图标和文本小部件的AppBar。点击搜索图标时,将调用showSearch并调用CustomSearchDelegate。如何使其在buildResults方法中立即调用this.close而不返回小部件,并将查询传递给SearchApp无状态小部件以显示在文本小部件上 代码如下: class SearchApp extends StatelessWidget { @override Widget build(BuildContext

我有一个非常简单的SearchApp,它有一个带有搜索图标和文本小部件的AppBar。点击搜索图标时,将调用showSearch并调用CustomSearchDelegate。如何使其在buildResults方法中立即调用this.close而不返回小部件,并将查询传递给SearchApp无状态小部件以显示在文本小部件上

代码如下:

class SearchApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        actions: <Widget>[
          IconButton(
            tooltip: 'Search',
            icon: const Icon(Icons.search),
            //Don't block the main thread
            onPressed: () {
              showSearch(context: context, delegate: CustomSearchDelegate());
            },
          ),
        ],
      ),
      body: Text(query), // The query data should be displayed here
    );
  }
}

class CustomSearchDelegate extends SearchDelegate {
  @override
  List<Widget> buildActions(BuildContext context) {
    return <Widget>[Icon(Icons.close)];
  }

  @override
  Widget buildLeading(BuildContext context) {
    return Icon(Icons.arrow_back_ios);
  }

  @override
  Widget buildResults(BuildContext context) {
    // GO back to SearchApp page immediately with the query result
  }

  @override
  Widget buildSuggestions(BuildContext context) {
    return Column();
  }
}
class SearchApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
行动:[
图标按钮(
工具提示:“搜索”,
图标:常量图标(Icons.search),
//不要阻塞主线程
已按下:(){
showSearch(上下文:上下文,委托:CustomSearchDelegate());
},
),
],
),
body:Text(query),//这里应该显示查询数据
);
}
}
类CustomSearchDelegate扩展了SearchDelegate{
@凌驾
列出buildActions(BuildContext上下文){
返回[图标(Icons.close)];
}
@凌驾
小部件buildLeading(BuildContext上下文){
返回图标(图标、箭头、返回图标);
}
@凌驾
小部件构建结果(构建上下文){
//立即返回SearchApp页面并显示查询结果
}
@凌驾
小部件构建建议(构建上下文){
返回列();
}
}

我意识到我可以编辑搜索类的源代码,所以我复制并粘贴了源代码,在文本字段下,我简单地删除了showResult方法并将其替换为close,因此不会显示结果页面。至于将查询传递到原始页面,我所要做的就是将值存储在异步变量中

我意识到我可以编辑搜索类的源代码,所以我复制并粘贴了源代码,然后在Textfield下,我简单地删除了showResult方法,并将其替换为close,因此不会显示结果页面。至于将查询传递到原始页面,我所要做的就是将值存储在异步变量中