在 Flutter 应用程序中通过向后滑动手势关闭键盘

Jos*_*ent 6 dart flutter flutter-navigation

当用户从边缘滑动到弹出路线时,我试图关闭键盘。

目前,键盘不会关闭,直到路线完全弹出,弄乱其他一些页面布局,直到它关闭

我确实尝试使用 aWillPopScope来确定用户何时要弹出路线,但不幸的是,这会禁用 iOS 或CupertinoPageRoute.

我只是想知道是否可以确定用户何时从边缘滑动到弹出或点击应用程序栏上的后退按钮并在执行此操作时关闭键盘。

如果可能的话,我会尝试在键盘开始滑动弹出时立即关闭键盘,就像许多应用程序中发生的那样。

我附上一个 gif 来显示我想要达到的效果。

滑动到弹出隐藏键盘

Ovi*_*diu 2

您需要创建一个扩展的自定义类NavigatorObserver,并将其实例传递给navigatorObservers您的MaterialApp或的属性CupertinoApp

在该自定义类中,您可以覆盖didStartUserGesturedidStopUserGesture,它将在滑动手势开始/结束时调用。这应该可以让您实现您正在寻找的行为。请注意,didStartUserGesture指示当前路线以及之前的路线,您可以根据这些路线添加逻辑来确定是否应关闭键盘。