微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Flutter 中的 TextFormField 和 TextField 中复制和粘贴不起作用

如何解决在 Flutter 中的 TextFormField 和 TextField 中复制和粘贴不起作用

解决:复制和粘贴在 TextFormField 中不起作用

发现我正在使用 ListeneronPointerDown 方法用户点击应用程序中的任何其他地方时移除焦点。但这导致了错误

但现在的问题是如果有人点击其他地方,如何移除焦点。

Listener(
    onPointerDown: (_) {
       FocusScopeNode currentFocus = FocusScope.of(context);
       if (!currentFocus.hasPrimaryFocus &&
       currentFocus.focusedChild != null) {
       currentFocus.focusedChild.unfocus();
      }
  },)

我正在尝试在我的 Flutter 应用程序的 TextFormField 中具有复制粘贴功能。我尝试了很多方法,但还是不行。


这是我的代码

Widget textFormWidget(
   String label,TextEditingController controller,bool enabled) {
return Padding(
  padding: const EdgeInsets.all(8.0),child: TextFormField(
    enabled: true,enableInteractiveSelection: true,readOnly: false,toolbarOptions:
        ToolbarOptions(paste: true,cut: true,selectAll: true,copy: true),textAlign: TextAlign.center,cursorColor: Colors.white,cursorWidth: 3,controller: controller,style: bold.copyWith(fontSize: 18),decoration: Inputdecoration(
        focusColor: Colors.white,hoverColor: Colors.white,labelText: label,alignLabelWithHint: true,labelStyle: normal),),);
}

将其称为 textFormWidget('Name',nameController,true),

如果您需要更多代码或信息,请评论

解决方法

找到了两个解决方案。
如果您检查 TextField 小部件,您会发现它将使用 EditableText 来显示其简单的文本输入。 EditableText 有一个 selectionControls 属性。此属性用于呈现选择工具栏。另外,我发现 material 和 Cupertino 对它的实现不同。

第一个解决方案:您可以创建自己的自定义 TextField,它将使用 EditableText 并将您的自定义 selectionControl 传递给您的小部件。我认为这将是一项非常艰巨的工作。创建您自己的小部件实现、处理动画和...

第二种解决方案:您可以简单地将 TextField 的所有相关文件复制到一个新文件中,并根据需要进行更新。对于此解决方案,我创建了一个 repo in GitHub。您可以查看源代码以了解如何在粘贴选项中显示对话框。这就是代码应该如何工作。

注意:我只是简单地更新了 selectionControls 的 Material 实现的粘贴功能。如果需要,您也可以更新 Cupertino selectionControls。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?