TextField controller.clear() 实际上并没有清除 TextField
TextField controller.clear() doesn't actually clear the TextField
我在实现 TextField 时遇到一些困难。更具体地说,我尝试使用控制器清除按钮的 onPress 方法上的 TextField。 controller.clear() 会从 The TextField 中删除文本,但是一旦您继续键入,旧值就会重新出现。
重现(使用 flutter-gallery):
修改 lib/demo/material/date_and_time_picker_demo.dart 以将控制器添加到其中一个 TextFields:
将以下内容添加到 class _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 作为列的最后一个子项(在我的例子中是第 211 - 215 行):
new FlatButton(
onPressed: () {
_controller.clear();
},
child: new Text('Clear'),
)
现在转到库中的日期和时间选择器示例,在事件名称文本字段中键入内容,按清除并继续键入。一旦您按下 Clear,该值就会从 TextField 中删除。一旦您继续输入,价值就会增加。
我通过在想要清除 TextField 时总是创建一个新的 TextEditingController 来解决这个问题。这有效,但似乎不是预期的方法。
你能帮忙吗?
PS:>扑博士:
[✓] Flutter (on Mac OS X 10.12.3 16D32, channel master)
- 在 /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 运行时环境(build 1.8.0_112-release-b05)
[✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 8.3)
- Xcode 在 /Applications/Xcode.app/Contents/Developer
- Xcode 8.3,构建版本 8E162
- ios-部署1.9.0
- CocoaPods 版本 1.1.1
[✓] Android Studio(2.2 版)
- Android 工作室位于 /Applications/Android 工作室。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(模拟器)
听起来像个错误。您愿意在 https://github.com/flutter/flutter/issues/new 提交错误吗?
我在实现 TextField 时遇到一些困难。更具体地说,我尝试使用控制器清除按钮的 onPress 方法上的 TextField。 controller.clear() 会从 The TextField 中删除文本,但是一旦您继续键入,旧值就会重新出现。
重现(使用 flutter-gallery):
修改 lib/demo/material/date_and_time_picker_demo.dart 以将控制器添加到其中一个 TextFields:
将以下内容添加到 class _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 作为列的最后一个子项(在我的例子中是第 211 - 215 行):
new FlatButton(
onPressed: () {
_controller.clear();
},
child: new Text('Clear'),
)
现在转到库中的日期和时间选择器示例,在事件名称文本字段中键入内容,按清除并继续键入。一旦您按下 Clear,该值就会从 TextField 中删除。一旦您继续输入,价值就会增加。
我通过在想要清除 TextField 时总是创建一个新的 TextEditingController 来解决这个问题。这有效,但似乎不是预期的方法。
你能帮忙吗?
PS:>扑博士:
[✓] Flutter (on Mac OS X 10.12.3 16D32, channel master)
- 在 /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 运行时环境(build 1.8.0_112-release-b05)
[✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 8.3)
- Xcode 在 /Applications/Xcode.app/Contents/Developer
- Xcode 8.3,构建版本 8E162
- ios-部署1.9.0
- CocoaPods 版本 1.1.1
[✓] Android Studio(2.2 版)
- Android 工作室位于 /Applications/Android 工作室。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(模拟器)
听起来像个错误。您愿意在 https://github.com/flutter/flutter/issues/new 提交错误吗?