[英]How to stop keyboard from getting dismissed?
我在 flutter 中使用textformfield
。每当用户键入内容时,我都会给他建议。 当用户点击建议时,键盘会自动消失。 我想阻止键盘被解雇。 怎么做? 我希望用户不断添加建议。 提前致谢。
来自FocusNode
文档:
FocusNodes 是 ChangeNotifiers,因此可以注册一个侦听器以在焦点更改时接收通知。
final _focusNode = FocusNode();
因此,当您将该addListener
分配给TextFormField
时,您可以向它添加FocusNode
以跟踪它发生的变化:
TextFormField(
focusNode: _focusNode,
// ...
),
您可以添加侦听器,然后检查它是否具有焦点,这意味着您正在检查TextFormField
字段是否获得焦点,这也意味着如果显示键盘:
_focusNode.addListener(() {
if(!_focusNode.hasFocus) {
_focusNode.requestFocus();
}
});
这样,它将保持TextFormField
的焦点,当你完成它时,你可以调用removeListener()
。
你可能有这个
FocusScope.of(context).unfocus();
或者最终的 FocusNode textFieldFocusNode = FocusNode();
TextFormField(
focusNode: textFieldFocusNode,
onTap: () async {
textFieldFocusNode.requestFocus();
},
)
将 FocusNode 赋予 Textformfield 并将该特定节点集中在点击建议上,如下所示:
//Assign this inputNode to TextFormField
FocusNode inputNode = FocusNode();
//Somewhere on TextFormField
TextFormField(
focusNode:inputNode
)
// to open keyboard call this function;
void openKeyboard(){
FocusScope.of(context).requestFocus(inputNode)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.