Flutter开发儿童拼写矫正APP:如何实现点击文本按序添加至展示变量
拼写选择文本收集功能的正确实现
原有代码的核心问题
- 变量类型未正确初始化:最初声明
var mytext无具体类型、默认值为null,直接对空值调用add方法会触发空指针报错 - 列表操作逻辑写反:Dart中
List.add()方法无返回值(返回void),原有代码把mytext.add(xxx)的执行结果重新赋值给mytext,直接把原本的列表引用覆盖为null - 缺少交互绑定:纯
Text组件本身无点击响应能力,没有绑定事件触发逻辑的情况下,永远不会执行文本写入操作
分步正确实现
- 初始化存储变量
因为需要按顺序缓存用户选择的多段文本,直接用字符串硬拼接不够灵活,应该用字符串列表存储,声明时直接初始化空列表,避免空值:List<String> mytext = []; - 给选项文本绑定点击写入逻辑
用可点击组件包裹原有选项文本,点击时直接向列表追加文本值,不要给add的返回值做赋值操作,写完后调用setState刷新页面:Center( child: GestureDetector( onTap: () { // 直接追加文本到列表,不要把add()的结果赋值给mytext mytext.add(imageList[anu1].wrongSpell1); setState(() {}); }, child: Text( imageList[anu1].wrongSpell1, // 给儿童用户加清晰的可点击视觉提示 style: TextStyle(fontSize: 18, decoration: TextDecoration.underline), ), ), ) - 顶部展示区域适配
原有代码直接对列表调用toString()会输出带中括号、引号的格式化字符串,不适合儿童阅读。把列表按顺序拼接成连续无格式的文本再展示即可:// 放在页面顶部的展示组件 Text( mytext.join(), style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold), )
适配儿童应用的小优化
- 点击选项时可以加简单的点击缩放反馈,降低操作生硬感
- 可以给顶部展示区加点击删除最后一位字符的逻辑,方便儿童纠正选错的内容
内容的提问来源于stack exchange,提问作者Radiant Developers
相关产品推荐
相关产品推荐

