在颤动中单击输入后键盘被解除和多行问题

Posted

技术标签:

【中文标题】在颤动中单击输入后键盘被解除和多行问题【英文标题】:Keyboard dismissed and Multiline issue after clicking enter in flutter 【发布时间】:2021-09-01 07:18:33 【问题描述】:

我正在尝试创建允许用户使用多行 TextFormField 仅在 doubleTap() 上键入的应用程序。所以,我正在使用 InkWell,但是在用户单击输入后写入后不会进入新行。请查看这个简单的函数。

getTextFormFieldWithInkwell() 
return Container(
  height: 200,
  width: 200,
  child: InkWell(
    onTap: () 
      print("onTap");
    ,
    onDoubleTap: () 
      // some func that enables user to write text
      print("onTap");
    ,
    child: TextFormField(
      keyboardType: TextInputType.multiline,
      maxLines: 10,
      textInputAction: TextInputAction.newline,
      onChanged: (String t) 
        print("onChanged");
        print(t);
      ,
    ),
  ),
);

GITHUB 中的类似未决问题

【问题讨论】:

【参考方案1】:

InkWell 替换为 TapGesture 将解决此问题。

 getTextFormFieldWithInkwell() 
  return Center(
    child: Container(
      height: 400,
      width: 400,
      child: GestureDetector(
        onTap: () 
          print("onTap");
        ,
        child: TextFormField(
          controller: controller1,
          keyboardType: TextInputType.multiline,
          maxLines: 10,
          textInputAction: TextInputAction.newline,
          onChanged: (String t) 
            print("onChanged");
            print(t);
          ,
        ),
      ),
    ),
  );

【讨论】:

以上是关于在颤动中单击输入后键盘被解除和多行问题的主要内容,如果未能解决你的问题,请参考以下文章

反应本机文本输入多行没有被键盘向上推

单击键盘上的“完成”以关闭键盘,但不会被解除

在按钮单击时更新颤动中的文本字段

StreamBuilder snapshot.hasError 在键盘显示/隐藏颤动时显示多次

如何在颤动中禁用 texformfield 输入?

Flutter:通过按下后退按钮解除键盘时,不关注文本字段(多行)