Bug背景
今天在弄输入框的时候,发现用户手动关闭键盘后,因为自定义组件的特殊性,我在点击输入框后并没有唤起键盘。
一般点击输入框或者某个组件:
GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(_focusNode);
},
child: YourWidget(),
),
我们直接聚焦,就可以弹起键盘。
将带有焦点的控件与TextField
或TextFormField
小部件关联起来,并使用focusNode
属性将其与之前创建的FocusNode
实例关联:
TextField(
focusNode: _focusNode,
// 其他属性
),
但是在我这边的需求里,当用户手动关闭键盘时,他还在聚焦,我这时候,点击输入框,但是它并不会弹起来,于是
首先:
1.使用KeyboardVisibilityBuilder
来监听键盘的可见性状态。在builder
回调中,根据isKeyboardVisible
的值来判断键盘是否关闭。
首先,在pubspec.yaml
文件中添加keyboard_visibility
插件的依赖:
dependencies:
keyboard_visibility: ^0.7.0