Flutter 3.3改进网页元素选取和文本编辑操作,并更新多项开发工具

在Flutter 3对所有平台皆提供稳定支持后,官方仍持续积极更新发布Flutter 3.3,这次总共整合了5,687个拉取请求,强化Flutter Web、桌面和文本处理的性能,并且在开发工具下功夫,更新go_router组件、DevTools和VS Code扩展组件。

Flutter 3.3修正了过去Flutter Web应用程序选择文本,与用户预期行为不一致的问题,在传统的网页应用程序中,用户可以通过滑动手势,一次选取多个网页元素,但这件事情没有办法在Flutter Web应用程序上完成。而现在官方推出SelectableArea小工具,任何SelectableArea的子组件都能够被自由的选取,开发者只需要将路由主体(Route Body)以SelectableArea小工具包起来,Flutter便会处理剩下的工作。

触摸板的输入在Flutter 3.3也更顺畅了,除了提供更丰富的控制,也减少特定情况出现误判,同时,Flutter现在也支持用户在iPadOS上,以Apple Pencil进行手写输入。

官方改进Flutter对富文本编辑的支持,3.3版本中的TextInputPlugin能够接受更精细的文本更新,过去TextInputClient仅能传递新的编辑状态,无法在新旧之间增量更新,而新加入的TextEditingDeltas和DeltaTextInputClient组件则补充了这项功能。借由增量更新,开发者可以构建具有范围样式的输入框,让最终用户在一段文本中,可以选择其中文本加上粗体会是斜体等样式。

Flutter 2.10正式登陆Windows桌面,但是之前Windows桌面应用程序的版本,是由特定于Windows桌面应用程序的文件设置,这个行为与其他平台设置版本的方法不一致,因此在Flutter 3.3中,官方修正了这个问题,现在开发者可以从项目的pubspec.yaml文件,和构建参数中设置Windows桌面应用程序版本,使Windows桌面应用程序的更新更一致可预测。

由于应用程序有时候会因为设计而有复杂的页面导航需求,Flutter 3.3扩展原生导航API,发布新版本go_router组件,开发者在设计行动、桌面和网页的路由逻辑,将会更简单。go_router为一个由Flutter团队维护的组件,开发者通过声明式方法,可简单处理导航和深度连接,在这个最新版本,应用程序还能够使用异步程序代码,执行应用程序重定位。

官方也更新了Flutter的VS Code扩展组件,添加的更新包括改进相依项目的操作,用户可以使用Dart一次添加多个逗号分隔的相依项目。在DevTools方面则改进UX,资料表格的显示性能也获得提升。