我正在编写一个针对 macOS 的 Flutter 应用程序,并希望能够显示一个允许在该对话框中导航的模式对话框(有点像一系列引导屏幕)。
为了便于在对话框中导航,我需要将我的小部件包装在某种导航器中。请参阅以下(简化)代码:
showDialog(
context: context,
builder: (context) => Dialog(
child: SizedBox(
width: 400,
height: 400,
child: Navigator(
onGenerateRoute: (_) => MaterialPageRoute(
builder: (_) => const Center(child: Text('hi there'))
),
),
),
),
);
现在这完美无缺 - 除了解雇。我可以通过点击障碍区域来关闭对话框(这很好),但是,按键盘上的 ESC 不会关闭对话框。
如果我只是直接嵌入孩子(没有导航器),按 ESC 会完美地关闭对话框。但由于某种原因,它看起来像是Navigator
在吞下 ESC 键。我也尝试过MaterialApp
用作导航器,它也吃掉了 ESC 键。
关于如何让导航器让我使用 ESC 键关闭对话框的任何理论?谢谢