Kön*_*Wey 8 keyboard android keyboard-events android-softkeyboard flutter
我正在寻找一种可能性来检测用户何时点击底部的 android 返回按钮以便在颤动中关闭键盘。问题如下:如果用户点击文本字段,它就会获得焦点并出现键盘,这里一切都很好。我将文本字段放在 GestureDetector 内,因此如果用户点击文本字段之外的某个位置,则会调用 unfocus()。但在 Android 上,还有另一种方法可以关闭键盘:使用智能手机底部的后退按钮。有什么方法可以检测用户在键盘打开时点击它的时间吗?据我了解,WillPopScope仅在后退按钮指向左侧时起作用,但是当键盘打开时,后退按钮指向底部,它有另一个用途。Keyboard_visibility 包对我不起作用。将侦听器添加到 KeyboardVisibilityNotification 时,onHide 和 onChanged 方法未触发。
小智 3
由于 Keyboard_visibility 包不再更新,您可以使用这个新包:Flutter Keyboard Visibility。它使用空安全并且正在获取更新。
这是我的方法,使用 FocusManager 而不是 FocusScope。
late final KeyboardVisibilityController _keyboardVisibilityController;
late StreamSubscription<bool> keyboardSubscription;
@override
void initState() {
super.initState();
_keyboardVisibilityController = KeyboardVisibilityController();
keyboardSubscription = _keyboardVisibilityController.onChange.listen((isVisible) {
if (!isVisible) FocusManager.instance.primaryFocus?.unfocus();
});
}
@override
void dispose() {
keyboardSubscription.cancel();
super.dispose();
}
Run Code Online (Sandbox Code Playgroud)
请参阅该包以获取替代实现。