在我的应用程序中,我有一个willpopscope窗口小部件包裹根支架,以防止用户意外地退出应用程序。另外,我在脚手架内有一个应用程序栏,上面有一个搜索按钮,单击时将在应用程序栏中显示搜索输入(类似于WhatsApp搜索(。切换搜索后,我希望将后按钮按下退出搜索,以便我将搜索输入包裹在另一个WillPopsCope中,期望内心最大的willPopsCope将进行控制和退出搜索,但是发生的事情是,当有多个WillPopsCope widgets嵌套时,控制权总是总是给出了大多数外部。是否有任何可能使控件转到内部大多数WillPopsCope的方法。
您可以使用领先:iconbutton(...(在您的Appbar搜索栏中。
这覆盖了brockbutton,因此您不需要内部的willpopscope。
尝试以下:
@override
Widget build(BuildContext context) {
return BackButtonListener(
onBackButtonPressed: () {
/// todo: close search widget
return Future.value(true);
},
child: SearchBar(),
);
}