如何防止键盘在按下提交键时解除?

问题描述 投票:0回答:2

我正在制作一个颤动的应用程序,用户可以在其中键入消息并点击键盘上的发送按钮发送消息。问题是,当我按下发送按钮时,消息会被发送但键盘会自动被解除。我怎样才能防止这种情况发生?提前致谢。

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,
)
dart flutter submit android-softkeyboard
2个回答
1
投票
SystemChannels.textInput.invokeMethod('TextInput.show');

on onSubmit方法


1
投票

这对我有用: -

首先创建一个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),
          )

现在,即使按下提交按钮,文本字段也不会失去焦点。

© www.soinside.com 2019 - 2024. All rights reserved.