Flutter 如何在不单击的情况下显示颤振搜索文本字段

Flutter 如何在不单击的情况下显示颤振搜索文本字段,flutter,search,Flutter,Search,我想打开搜索页面,搜索文本字段直接聚焦。我不想通过点击搜索图标按钮来输入搜索词的另一个步骤。我必须写什么代码?这是我目前的代码。 我不想让这件事出现; 但是当这个页面打开时,它会显示出来 类搜索扩展了StatefulWidget{ @凌驾 _SearchState createState()=>\u SearchState(); } 类_SearchState扩展了状态{ @凌驾 小部件构建(构建上下文){ 返回脚手架( appBar:appBar( 标题:文本(“搜索应用程序”), 行动:[

我想打开搜索页面,搜索文本字段直接聚焦。我不想通过点击搜索图标按钮来输入搜索词的另一个步骤。我必须写什么代码?这是我目前的代码。 我不想让这件事出现; 但是当这个页面打开时,它会显示出来

类搜索扩展了StatefulWidget{
@凌驾
_SearchState createState()=>\u SearchState();
} 
类_SearchState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“搜索应用程序”),
行动:[
建筑商(
生成器:(上下文)=>IconButton(
图标:图标(Icons.search),
onPressed:()异步{
等待showSearch(上下文:context,委托:DataSearch());
}),
)
],
),
);
}
}
类DataSearch扩展了SearchDelegate{
列出所有字段=['a','b',…];
@凌驾
列出buildActions(BuildContext上下文){
...
}
@凌驾
小部件buildLeading(BuildContext上下文){
...
}
@凌驾
小部件构建结果(构建上下文){
...
}
@凌驾
小部件构建建议(构建上下文){
...
}

PS:我解决了这个问题,没有为搜索创建另一个页面。我创建了一个带有搜索栏的页面,现在当我单击它时,我直接进入搜索状态。

我想你可以这样做

class _SearchState extends State<Search> {
  @override
  Widget build(BuildContext context) {
    void openSearch() async {
      await showSearch(context: context, delegate: DataSearch(), query: '');
    }

    openSearch();

    return Scaffold(
      appBar: AppBar(
        title: Text('Search App'),
        actions: [
          IconButton(
            icon: Icon(Icons.search),
            onPressed: () { openSearch(); },
          )
        ],
      ),
    );
  }
}
class\u SearchState扩展状态{
@凌驾
小部件构建(构建上下文){
void openSearch()异步{
等待showSearch(上下文:上下文,委托:DataSearch(),查询:“”);
}
openSearch();
返回脚手架(
appBar:appBar(
标题:文本(“搜索应用程序”),
行动:[
图标按钮(
图标:图标(Icons.search),
onPressed:(){openSearch();},
)
],
),
);
}
}

希望这能解决您的问题。

虽然我在您的代码中没有找到任何文本字段,但假设您的要求。在您的文本字段上设置自动对焦,如下所示

TextField(
  autofocus: true,
)

阅读更多信息。

我尝试了您的代码,但第一个dummyfunction部分出现错误,说“无法在初始值设定项中访问实例成员dummyfunction”。我刚刚更新了答案。也许这个解决方法对您有效!它按我的要求打开,但这次搜索本身不起作用。当我单击建议时,没有任何操作。尽管我dn不使用此方法,我感谢您的帮助,它是友好和有用的。我的代码没有文本字段,因为我使用的是颤振搜索委托方法。
TextField(
  autofocus: true,
)