在 Flutter 中隐藏键盘,一般可以使用
FocusScope.of(context).requestFocus(FocusNode())
方法,将焦点设置到一个新的
FocusNode
对象上,从而使当前文本输入框失去焦点,进而隐藏键盘。不过有时候这个方法可能会比较慢,因为它需要执行一系列的操作才能完成。
为了优化隐藏键盘的速度,你可以尝试使用
SystemChannels.textInput.invokeMethod('TextInput.hide')
方法,该方法会直接调用平台API来隐藏键盘,比
FocusScope.of(context).requestFocus(FocusNode())
方法快很多。
具体来说,你可以在需要隐藏键盘的地方,调用如下代码:
import 'package:flutter/services.dart';
SystemChannels.textInput.invokeMethod('TextInput.hide');
这个方法不仅比 FocusScope.of(context).requestFocus(FocusNode())
方法快,而且还可以隐藏一些特殊的键盘,比如语音输入键盘和表情键盘等。
注意,使用 SystemChannels.textInput.invokeMethod('TextInput.hide')
方法需要引入 flutter/services.dart
包,同时需要注意该方法仅适用于 Android 和 iOS 平台,其他平台上可能会抛出异常。