渐进式编程课
Flutter 目录
第 21 课2026.09.28

在详情页输入课程的新标题,按键盘“完成”后返回列表页。

第 21 课:从详情页输入并提交新标题

  • 日期:2026-09-28
  • 课程序号:第 21 课
  • 知识点:TextField.onSubmitted

用途或适用场景

在详情页输入课程的新标题,按键盘“完成”后返回列表页。

核心概念

onSubmitted 在用户完成输入时收到当前字符串;沿用上一课 Navigator.pop 的字符串结果,不增加第二份列表状态。

最小代码或操作示例

dart
// 替换第 20 课 MaterialPageRoute 的 builder 内容;列表页 openLesson 不变。
MaterialPageRoute(builder: (detailContext) => Scaffold(
  body: TextField(
    decoration: InputDecoration(labelText: '新标题(原名:${lessons[index]})'),
    textInputAction: TextInputAction.done,
    onSubmitted: (title) => Navigator.pop(detailContext, title),
  ),
))

3~5 分钟练习

输入“Flutter 路由”并按“完成”,再不输入直接返回一次。

参考答案

第一次用新字符串更新原列表行;第二次返回 null,原行保持不变。暂不在本课处理空白标题。

与上一课的联系

沿用第 20 课的 lessons[index]、Navigator.push<String>、挂载检查与 renameLesson;本课只把详情页固定返回值改为 TextField.onSubmitted 的输入值;下一课可检查输入值是否为空白。

时效校验

时效校验:2026-09-28(已核对 Flutter 当前 TextField.onSubmitted API;未见废弃标记;键盘“完成”动作由 TextInputAction.done 指定)。

官方参考