【发布时间】:2021-03-23 14:49:36
【问题描述】:
当键盘打开时,我点击设备后退按钮键盘没有隐藏它正在导航到上一页。
【问题讨论】:
-
@naijab.com 如果键盘打开则隐藏,如果键盘未打开则导航到上一页。
当键盘打开时,我点击设备后退按钮键盘没有隐藏它正在导航到上一页。
【问题讨论】:
FocusScope.of(context).unfocus() 将关闭键盘,设备返回按钮由 WillPopScope 控制,你可以这样做
WillPopScope(
onWillPop: () async{
FocusScope.of(context).unfocus();
return false;
},
child: Scaffold(.....)
);
【讨论】:
Navigator.pop(context) 您可以使用MediaQuery.of(context).viewInsets.bottom 来检查键盘当前是打开还是关闭。
首先,您可以使用keyboard_visibility 包来有效地执行此操作,我已经使用过它,它的作用就像魅力一样。
安装
dependencies:
keyboard_visibility: ^0.5.2
用法
import 'package:keyboard_visibility/keyboard_visibility.dart';
bool keyBoardState;
@protected
void initState() {
super.initState();
KeyboardVisibilityNotification().addNewListener(
onChange: (bool visible) {
print(visible);
keyBoardState = visible;
},
);
}
现在在您调用其他页面之前,首先检查 keyBoardState 是真还是假,然后执行您的工作。
【讨论】:
FocusScope.of(context).isFirstFocus 当键盘获得焦点时返回 true,这仅在您的键盘打开时有效。
if (FocusScope.of(context).isFirstFocus) {
FocusScope.of(context).unfocus();
}
【讨论】: