android 如何防止键盘被解雇?

zbsbpyhn  于 2023-01-19  发布在  Android
关注(0)|答案(3)|浏览(77)

我用的是flutter的textformfield,每当用户输入什么,我就给予他建议,当用户点击建议的时候,键盘会自动关闭,我想阻止键盘被关闭,怎么做?我想让用户不断的添加建议,先谢谢了。

bxjv4tth

bxjv4tth1#

FocusNodedocumentation
FocusNode是ChangeNotifier,因此可以注册侦听器以在焦点更改时接收通知。

final _focusNode = FocusNode();

因此,当您将FocusNode分配给TextFormField时,可以将addListener分配给它,以跟踪发生在它身上的更改:

TextFormField(
 focusNode: _focusNode,
 // ...
 ),

您可以添加侦听器,然后检查它是否具有焦点,这意味着您正在检查TextFormField字段是否具有焦点,这也意味着如果显示键盘:

_focusNode.addListener(() {
  if(!_focusNode.hasFocus) {
    _focusNode.requestFocus();
  }
});

这样,它将保持TextFormField的焦点,当您完成它时,您可以调用removeListener()

daolsyd0

daolsyd02#

将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)
}
mefy6pfw

mefy6pfw3#

你可能戴着这个

FocusScope.of(context).unfocus();

或最终焦点节点文本字段焦点节点=焦点节点();

TextFormField(
             focusNode: textFieldFocusNode,
              onTap: () async {
               textFieldFocusNode.requestFocus();
                 },
)

相关问题