请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

在安卓模拟器中调试:点击键盘外区域不会自动失去焦点的问题

调试环境:安卓模拟器ADB(Nexus 6p)

完成了输入框的封装后,发现点击输入框,键盘弹起后,如果鼠标点击键盘区域之外的空白区域(例如图中的绿色区域)键盘不会自动收起,不符合常规交互直觉。
身边没有真机,想了解这是模拟器的问题还是说本身Flutter的设计就不包含自动收起键盘的这个交互呢?而如果是后者,如何实现这个点击空白区域后收起键盘的交互?

图片描述

正在回答

2回答

CrazyCodeBoy 2021-04-08 22:33:28

这个是系统特性,因为输入框在获取光标所以键盘不会收回去,跟flutter无关。

0 回复 有任何疑惑可以回复我~
  • 提问者 it文科生 #1
    噢,原来是这样。那想请教如果想实现点击空白区域失去焦点有什么实现手段呢,因为我看很多移动端APP都有这个交互。
    回复 有任何疑惑可以回复我~ 2021-04-08 22:59:03
  • CrazyCodeBoy 回复 提问者 it文科生 #2
    可以通过下面代码实现:
    GestureDetector(
        // 触摸收起键盘
          behavior: HitTestBehavior.translucent,
          onTap: () => FocusScope.of(context).requestFocus(FocusNode()),
          child:xxx
    回复 有任何疑惑可以回复我~ 2021-04-09 11:52:11
  • 提问者 it文科生 #3
    好的,我再查阅文档了解一下。
    回复 有任何疑惑可以回复我~ 2021-04-09 13:54:20
Cloud_Iris 2022-07-23 10:04:30

这个我可以给你一种实现的方式

GestureDetector(
    onTap: (){
        /// 收起软键盘
        SystemChannels.textInput.invokeMethod('TextInput.hide');
    },
  child: xxx,
)

这样套在合适的组件的外层就可以了,亲测有效

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信