我正在制作一个颤动的应用程序,用户可以在其中键入消息并点击键盘上的发送按钮发送消息。问题是,当我按下发送按钮时,消息会被发送但键盘会自动被解除。我怎样才能防止这种情况发生?提前致谢。
TextField(
autofocus: true,
keyboardType: TextInputType.multiline,
maxLines: null,
decoration: new InputDecoration.collapsed(
hintText: "Let's talk",
border: UnderlineInputBorder(
borderRadius: BorderRadius.circular(1),
),
),
textInputAction: TextInputAction.send,
onSubmitted: null,
)
SystemChannels.textInput.invokeMethod('TextInput.show');
on onSubmit方法
这对我有用: -
首先创建一个FocusNode
并将其分配给您的文本字段,执行以下操作: -
FocusNode
是一个长寿命的组件,所以用initState
方法初始化它: -
FocusNode inputFieldNode;
@override
void initState() {
super.initState();
inputFieldNode = FocusNode();
}
表格处理后,不要忘记用FocusNode
方法清理dispose
: -
@override
void dispose() {
inputFieldNode.dispose();
super.dispose();
}
将FocusNode
分配给textfield并在onSubmitted:
中编写以下代码: -
TextField(
focusNode: inputFieldNode,
onSubmitted: (String) => FocusScope.of(context).requestFocus(inputFieldNode),
)
现在,即使按下提交按钮,文本字段也不会失去焦点。