Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测点击android后退按钮关闭键盘时的颤振_Android_Flutter_Keyboard_Android Softkeyboard_Keyboard Events - Fatal编程技术网

检测点击android后退按钮关闭键盘时的颤振

检测点击android后退按钮关闭键盘时的颤振,android,flutter,keyboard,android-softkeyboard,keyboard-events,Android,Flutter,Keyboard,Android Softkeyboard,Keyboard Events,我正在寻找一种可能性,来检测用户何时点击底部的安卓后退按钮以关闭键盘。 问题在于:如果用户点击一个文本字段,它就会获得焦点,键盘就会出现,这里一切都很好。我将文本字段放在一个GestureDetector中,因此如果用户点击文本字段之外的某个位置,就会调用unfocus()。但在安卓系统上,还有另一种关闭键盘的方法:使用底部智能手机上的“后退”按钮。 在键盘打开时,有什么方法可以检测用户何时点击它?据我所知,WillPopScope只在后退按钮指向左侧时工作,但当键盘打开时,后退按钮指向底部,它

我正在寻找一种可能性,来检测用户何时点击底部的安卓后退按钮以关闭键盘。 问题在于:如果用户点击一个文本字段,它就会获得焦点,键盘就会出现,这里一切都很好。我将文本字段放在一个GestureDetector中,因此如果用户点击文本字段之外的某个位置,就会调用unfocus()。但在安卓系统上,还有另一种关闭键盘的方法:使用底部智能手机上的“后退”按钮。 在键盘打开时,有什么方法可以检测用户何时点击它?据我所知,WillPopScope只在后退按钮指向左侧时工作,但当键盘打开时,后退按钮指向底部,它还有另一个用途。 键盘可视性包对我不起作用。将侦听器添加到KeyboardVisibilityNotification时,不会触发onHide和onChanged方法

  @override
  Widget build(BuildContext context) {
   return WillPopScope(
         child: Scaffold(.....),
          onWillPop: () async {
            var currentFocus = FocusScope.of(context);
            if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) {
              currentFocus.focusedChild.unfocus();
              return false;
            }else{
              return true;
            }
          },
        );
    }

使用WillPopScope关闭键盘反按事件

使用键盘可视性包:


onHide回调由于某些原因无法启动,因此您必须改用onChange并检查可见性是否为false。

这是两个问题,如果你把问题分为两部分,你就会找到答案……我正在寻找一种方法,通过在flatter中点击android后退按钮来检测键盘是否关闭,我补充说KeyboardVisibility软件包不起作用。不确定第二个问题是什么,但我希望现在已经清楚了。只有在尝试弹出路线时才会调用onWillPop,但这里的情况并非如此。点击android按钮(向下箭头)关闭键盘与路由无关,它只是关闭键盘