首页 文章

TextField controller.clear()实际上并没有清除TextField

提问于
浏览
1

我在实现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中键入内容,按清除并继续键入 . 按下Clear后,将从TextField中删除该值 . 一旦继续输入,该值就会收到 .

当我想要清除TextField时,总是创建一个新的TextEditingController,我解决了这个问题 . 这有效,但似乎并不是这样做的预期方式 .

你能帮我吗?

PS:>扑医:

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

  • 在/ Users / rainerwittmann / Flutter / flutter上晃动

  • 框架修订版0d402242c5(5小时前),2017-04-03 22:50:30

  • 引擎修订版878f0ff09d

  • Tools 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运行时环境(build 1.8.0_112-release-b05)

  • [✓] iOS工具链 - 为iOS设备开发(Xcode 8.3)

  • Xcode位于/Applications/Xcode.app/Contents/Developer

  • Xcode 8.3,Build版本8E162

  • ios-deploy 1.9.0

  • CocoaPods 1.1.1版

  • [✓] Android Studio(2.2版)

  • Android Studio at / Applications / Android Studio.app/Contents

  • Gradle版本2.14.1

  • Java版:OpenJDK运行时环境(build 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(模拟器)

1 回答

相关问题