【问题标题】:TextField controller.clear() doesn't actually clear the TextFieldTextField controller.clear() 实际上并没有清除 TextField
【发布时间】:2017-08-29 12:36:44
【问题描述】:

我在实现 TextField 时遇到了一些困难。更具体地说,我尝试使用控制器来清除按钮的 onPress 方法上的 TextField。 controller.clear() 从 TextField 中删除文本,但是一旦您继续键入,旧值就会重新出现。

复制(使用颤振画廊):

修改 lib/demo/material/date_and_time_picker_demo.dart 以将控制器添加到 TextField 之一:

将以下内容添加到类 _DateAndTimePickerDemoState 的开头(在我的例子中是第 124 行):

class _DateAndTimePickerDemoState extends State<DateAndTimePickerDemo> {
++  TextEditingController _controller = new TextEditingController();
  DateTime _fromDate = new DateTime.now();
  ...

将以下行添加到第一个 TextField(在我的例子中为第 146 行):

new TextField(
++  controller: _controller,
  decoration: const InputDecoration(
    labelText: 'Event name',
  ),
  style: Theme.of(context).textTheme.display1,
),

将新的 FlatButton 作为最后一个子元素添加到 Column(在我的情况下为第 211 - 215 行):

new FlatButton(
  onPressed: () {
    _controller.clear();
  },
  child: new Text('Clear'),
)

现在转到库中的日期和时间选择器示例,在事件名称文本字段中输入一些内容,按清除并继续输入。按下清除后,该值将从 TextField 中删除。一旦你继续输入,价值就会收割。

当我想清除 TextField 时,我总是通过创建一个新的 TextEditingController 来解决这个问题。这可行,但似乎不是预期的方式。

你能帮忙吗?

PS:>扑医生:

  • [✓] Flutter(在 Mac OS X 10.12.3 16D32 上,通道主控)

    • Flutter 在 /Users/rainerwittmann/Flutter/flutter
    • 框架修订 0d402242c5(5 小时前),2017-04-03 22:50:30
    • 引擎修订版 878f0ff09d
    • 工具 Dart 版本 1.23.0-dev.10.0
  • [✓] 主机可执行文件兼容性

    • 下载的可执行文件在主机上执行
  • [✓] Android 工具链 - 为 Android 设备开发 (Android SDK 25.0.2)

    • Android SDK 位于 /usr/local/opt/android-sdk
    • 平台 android-25,构建工具 25.0.2
    • ANDROID_HOME = /usr/local/opt/android-sdk
    • Java 二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java 版本:OpenJDK 运行时环境(内部版本 1.8.0_112-release-b05)
  • [✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 8.3)

    • Xcode 位于 /Applications/Xcode.app/Contents/Developer
    • Xcode 8.3,构建版本 8E162
    • ios-deploy 1.9.0
    • CocoaPods 1.1.1 版
  • [✓] Android Studio(2.2 版)

    • Android Studio 位于 /Applications/Android Studio.app/Contents
    • Gradle 版本 2.14.1
    • Java 版本:OpenJDK 运行时环境(内部版本 1.8.0_112-release-b05)
  • [✓] IntelliJ IDEA 社区版(2017.1 版)

    • Dart 插件版本 171.4006
    • Flutter 插件版本 12.0
  • [✓] 连接的设备

    • iPhone 7 • 59820DDC-6A72-475E-84C0-A2E837F62572 • ios • iOS 10.3(模拟器)

【问题讨论】:

    标签: controller textfield flutter


    【解决方案1】:

    听起来像一个错误。你愿意在https://github.com/flutter/flutter/issues/new 提交错误吗?

    【讨论】:

    • 问题现已修复。谢谢大家
    • 你能发布解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2022-06-12
    • 2021-09-28
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多