一文详解Flutter 3.44版本的重磅更新
作者 / Khanh Nguyen
Flut
te
r 3.44 现已推出,带来重磅更新!此版本标志着 Flutter 开始适用于
Android
的 Hybrid Composi
ti
on++、且可以作为
iOS
/macOS 全新默认工具的 Swift Package Manager,以及支持针对 Impeller 改进的 Vulkan,是 Flutter 发展历程上又一高光里程碑。我们与新任首席维护者
Can
onical 一起推出了桌面多窗口支持的预览版,并通过将 Material 和 Cupertino 从核心框架中解耦,开始进行重大架构升级。我们通过 GenUl 重新定义智能体用户体验,并借助 Agentic Hot Relo
ad
、Dart Agent Skill 和 Flutter Agent Skill 重塑
开发者
体验。从 2026 年丰田 RAV4 多媒体系统到即将推出的 LG webOS
SD
K,Flutter 正在为下一代应用赋能。我们很高兴与您分享所有新资讯和更新。欢迎使用 Flutter 3.44!
今年 Google I/O 大会的 Flutter 主题是: Flutter 无处不在,无时不在,集众智而建,为大众而生。
"无处不在,无时不在" 源于某个周二 Khanh Nguyen 在
手机
上使用一个应用时的感悟: 从在湾区记录日常饮食到在日本购物,Flutter 应用已悄然融入生活的方方面面。有数据为证: pub.dev 生态系统热度空前,仅在过去 30 天,软件包下载量就超过 13 亿次。Flutter 现在是两大应用商店中受欢迎程度排名第二的移动开发 SDK,月活跃开发者超过 150 万,仅在一年内就增加了 50%。
"集众智而建,为大众而生" 是 Khanh Nguyen 与 Google I/O 大会的联合主持人 Kate Lovett 在探讨我们全球社区所带来的喜悦时想到的。超过1,700 名坚定且热忱的贡献者是这一进展背后的强大推动力,他们在过去的一年中,向核心代码库提交了 5,800 项变更。仅在此发布周期中,我们收到了来自178 位不同贡献者的 972 次提交,其中包括61 位新贡献者的首次提交。社区的助力始终是 Flutter 的命脉,确保 Flutter 真正集众智而建,为大众而生。由衷地感谢大家!
开发者体验
我们希望尽可能提高使用 Flutter 构建应用的效率,无论是手动编写代码还是使用最喜爱的编码智能体进行迭代。在此版本中,我们将改进现有的开发者工具套件,并引入新工具来增强您的开发工作流。
DevTools 性能提升
我们正在引入更细颗粒度的分析来提高效率,并已针对包含大量文件或目录的项目进行了分析性能改进。
我们还进一步提升了 Flutter DevTools 的稳定性和性能,包括改为默认使用 WASM,这使得 DevTools 运行和响应更快。
Widget 预览 (实验性)
此版本为 Widget 预览环境带来了进一步的性能改进和功能提升:
预览检测重写:检测逻辑现在使用 Dart 分析服务器 (Dart Analysis Server),大幅减少了 Flutter 工具的内存开销。对于 IDE 用户,总体内存用量会最高减少 50%。
预览筛选:现在可以按分组、名称、脚本和软件包 URI 对预览进行筛选,从而更轻松地应对包含多项预览的项目。特别鸣谢社区成员NamanGoyalK对此功能的贡献!
无需
Ros
etta 的原生 Apple Silicon 支持
使用 Apple Silicon 芯片的 Mac 开发者将不再需要安装 Rosetta 转译层来运行 Flutter。所有 macOS 命令行工具 (包括我们的 iOS 设备
通信
二进制文件) 都已更新为在
ARM
上原生运行。此更新将在 Apple 计划停用 Rosetta 转译支持之前发布,以确保您的开发环境能够适应 Apple 硬件未来的变化。Flutter 将在后续版本中完全终止对
Intel
x86 Mac 的支持。如果您的团队仍依赖基于 Intel 的 Mac 主机进行开发,建议尽早规划硬件迁移。
AI
驱动时代,重塑开发者体验
在过去的一年中,Dart 和 Flutter 生态系统见证了 Antigravity、Gemini CLI、Claude Code 和 Cu
rs
or 等智能体工具的爆发式增长,这些工具正从根本上重塑开发者的角色,使其向借助智能体进行架构设计和协调的方向演进。为了支持这种转变,我们专注于强化开发者体验基础,并引入新工具来增强您的开发工作流。
通过 Agentic Hot Reload 实现无缝的编码智能体集成
在 AI 辅助开发的飞跃式发展进程中,我们推出了 Agentic Hot Reload: MCP 服务器和您最喜爱的编码智能体现在将自动识别并连接到正在运行的 Dart 和 Flutter 应用。这意味着像 Antigravity 这样的编码智能体现在可以立即对您正在运行的应用执行热重载!当您提示 AI 助手编辑界面时,智能体会编写代码并自动触发热重载来立即显示结果,无需任何手动设置。此外,我们还进行了以下改进:
强化了依赖项搜索:智能体现在可以安全地读取和搜索软件包依赖项中的文件,而无需完整访问本地 pub 缓存。
整合工具:我们已整合 MCP 工具定义,显著降低智能体工作流的 Token 成本。
我们最近还推出了Dart 和 Flutter 的 Agent Skills,为您的编码智能体提供以任务为
中心
的生产级领域专业知识。这些 Skill 可以提升编码智能体的能力,并帮助您在完成添加集成测试或配置本地化等任务时节省 Token,同时遵守推荐的最佳实践。
使用 Flutter 让 AI 无处不在:构建新一代 AI 原生应用
随着 AI 驱动的功能从简单的内容摘要演变为能力全面的智能体助理,我们专注于扩展 Dart 和 Flutter 生态系统,为各个平台的这类体验提供所需的基础设施。
Firebase AI
Logic
Firebase AI Logic 使您能够从 Flutter 应用 (即从客户端) 调用 Gemini A
PI
。
MacroFactor是一款 Flutter 应用,使用Firebase AI Logic直接连接到 Gemini 模型以更好地利用其多模态功能。使用 AI 可以将枯燥的琐事转化为令人愉快、宛如魔法般的用户体验,其中一个例子是仅需拍照即可追踪管理日常饮食。
Firebase AI Logic 现在具有服务器提示词模板,无需再将提示词直接嵌入到应用代码中。
面向 Flutter 的 Firebase Agent Skill现已推出,可提供分步指导来帮助您更高效地构建全栈 Flutter 和 Firebase 应用。
Genkit Dart 预览版
我们也很高兴地宣布 Genkit Dart 的预览版已发布。Genkit Dart 是一个用于构建全栈、AI 驱动及智能体应用的开源框架。它提供通用模型 API,支持 Google、Anthropic 和 OpenAI 等提供商。该框架配备了从原型到生产所需的一切,包括类型安全的结构化输出、工具调用、多轮对话和内置的可观测性能力。
您可以将其部署在服务器端,也可以直接在 Flutter 应用中运行 Genkit Dart!
import'package:genkit/genkit.dart';
import'package:genkit_google_genai/genkit_google_genai.dart';
voidmain() async {
finalai =Genkit(plugins: [googleAI()]);
finalresponse = await ai.generate(
model: googleAI.gemini('gemini-flash-latest'),
prompt:'Why is Dart a great language for AI
applications?',
);
print(response.text);
}
Gemma 3n 挑战赛
看到 Flutter 开发者不断突破 AI 应用的边界,我们感到无比自豪。热烈祝贺 Gemma Vision 的创作者 Tommaso Giovannini 和 Vite Vere 的创作者 Guido Marangoni 在去年的Gemma 3n 挑战赛中分别荣获第一名和第二名。两位都选择使用 Flutter 来打造足以改变生活的工具:
Gemma Vision 帮助视障人士感知世界
Vite Vere 协助有认知障碍的人士完成日常生活中的任务
Gemma 4
近期推出的 Gemma 4 是一款轻量级的设备端模型,专为高级推理和智能体工作流而构建,适用于成本敏感、端侧数据限制或网络受限的环境。其多模态功能非常出色,多步骤规划以及链式工具调用方面的出色表现,更是令人印象深刻。
过去,跨不同硬件管理这些设备端模型非常复杂。正因如此,LiteRT-LM 的推出令人振奋。
适用于 Flutter 的 LiteRT-LM
当我们深入研究 Gemma Vision 和Vite Vere的代码时,看到两者都利用 pub.dev 提供的插件flutter_gemma来与 Gemma 集成,这令人非常振奋。
精彩不止于此: 我们很高兴告诉您,针对 Flutter 的完整 LiteRT-LM 支持即将在flutter_gemma软件包中推出。
LiteRT-LM 是 Google 可用于生产环境的高性能开源推理框架。它能通过抽象化淡化硬件差异,使开发者能够在各种设备上运行强大的设备端 AI 模型 (如 Gemma 4),同时确保
GPU
和 NPU 加速在全部 6 个 Flutter 稳定平台 (Android、iOS、Web、Windows、
Linux
和 macOS) 上确保峰值性能。
Flutter + A2UI = GenUI
在谈到 AI 驱动的用户体验时,我们可能都一致认为,面对满屏的 Markdown 内容,甚至更进一步的纯文本内容,已让人疲惫不堪。
生成式用户界面 (即 GenUI) 是一种用户体验范式,由 AI 构建并实时响应用户界面,而不仅仅是文本 —— 正如 Hatcha Demo 应用中所示。
在过去的一年中,我们的 GenUI 团队作为定义新兴A2UI 协议的项目合作伙伴,一直在推动 GenUI 的应用。A2UI 是 Google 推出的开源协议,定义了智能体和客户端如何在界面的组成和状态上进行协作。
自从去年年底推出 Flutter GenUI SDK 以来,我们已经看到了令人难以置信的发展势头,年初至今软件包的下载量增长了 500%。
Catagay Ulusoy 的Finnish it(Google Play 商店、Apple Store) 就是一个杰出的例子。此应用不仅能创建自定义课程计划来帮助用户学习芬兰语,还能为每节课动态构建完美的界面。如果您之前观看了Cloud Next 开发者主题演讲,您可能已经看到 Flutter De
vR
el 负责人 Emma Twersky 对此应用和 Catagay 给予了充分的赞扬!
Visual Layout 实验
来自 Google DeepMind 的 Li-Te Cheng 和他的团队是 GenUI 领域的先驱。还记得这个演示吗?2023 年,由于演示中的红色调试横幅,它在 Flutter 圈子中广为流传。是的,那是 Li-Te 的队伍!
他参与了我们的 What’s New in Flutter 演讲,分享了他使用 Flutter 构建 Gemini 应用 "Visual Layout" 实验的经验。
他谈到了为什么他的团队倾向于将 Flutter 作为首选界面工具包:
精美的界面
高效的开发者体验
多平台支持
非常适合 GenUI 的架构
以下是他给出的 3 个关键要点,您可以将其用于自己的 GenUI 项目:
依靠规范明确的框架实现 AI 一致性;
使用 "AI Critic" 循环来确保得到可靠的输出;
使用模板化设计平衡速度和可控性。
最后,Li-Te 激励我们打破文字和聊天
机器人
的局限,去构建丰富、互动且令人愉悦的体验。
Android 支持
Googlebook 及外设支持
Flutter 已经为由 Gemini 驱动的全新 Googlebook 笔记本
电脑
做好准备。由于 Flutter 遵循 Android 的大屏开发指南,应用可以自然顺畅地处理外部硬件输入。默认情况下,触控板滚动、鼠标悬停状态、右键菜单和键盘快捷键都可以正常工作。由于 Flutter 在 macOS、Windows 和 Linux 上具有成熟的桌面支持,Flutter 应用在 Googlebook 上也将提供原生且响应迅速的使用体验,而不是看起来像经过拉伸变形的移动端移植版。现有的移动应用无需经历大规模重写,即可在 Googlebook 上获得良好的体验。
Android 17
Android 17 已经正式发布,相关团队正在针对最新的 Android 17 版本积极测试 Flutter,以确保您的应用继续按预期运行。我们还主动集成了最新的安全性和可用性功能,如本地网络保护和安全动态代码加载。
您可以在 GitHub 上查看我们的实时进度。我们建议您立即下载 Android 17正式版并开始测试您的应用。如果您遇到错误或发现缺少任何功能,请提交问题!
适用于 Android 的Hybrid Composition++
将 Web 视图或地图等原生 Android 组件嵌入到 Flutter 应用中,一直以来导致开发者需要在帧率和保真度之间做出选择。早期的渲染策略会造成滚动时屏幕撕裂、文本输入异常或
CPU
开销过高等问题。
Flutter 3.44 引入了 Hybrid Composition++ (HCPP) 作为一项可选功能来解决这些问题。HCPP 不依赖于屏幕外缓冲区或强制 Flutter 引擎处理原生视图,而是将图层合成直接委托给 Android 系统。该过程利用 Vulkan 图形库的底层访问能力,使用硬件缓冲区交换链和Su
rf
ac
eControl事务将 Flutter 界面与原生 Android 视图同步。
我们因此可以实现高性能的滚动和准确的触控输入。它还为SurfaceView组件提供了可靠的支持,而这对旧渲染模式来说则一直是个挑战。
HCPP 对Android API 和硬件有要求,因此即使选择了启用,也不是所有设备都可以使用 HCPP。无需采用新的 API,您只需启用标志即可升级现有平台视图。通过向run命令传递--enable-hcpp标志,或向AndroidManifest.xml文件添加配置标志,您可以在新模式成为默认渲染模式之前对其进行测试:
Android 显示屏圆角半径支持
为了帮助您在现代移动设备上构建像素级完美的布局,Flutter 现在直接与 Android 硬件集成,以支持显示屏圆角半径 (#179219)。Flutter 现在可以查询设备显示屏的物理和逻辑圆角半径,并通过 MediaQuery 公开这些信息。这使您的界面能够准确地遵循硬件的几何形状,确保内容在弧度较大的屏幕上不会被裁剪。
Android Gradle 插件 9.0 和内置 Kotlin
在 Android Gradle 插件 (AGP) 9 之前,Android 应用和插件开发者必须手动将 Kotlin Gradle 插件 (KGP) 添加到其构建文件中,以便系统能够理解和编译 Kotlin 代码。从 AGP 9.0 开始,Android 构建系统可以原生处理 Kotlin。由于构建系统已经内置 Kotlin 处理能力,手动添加单独的 KGP 现在会产生冲突并导致构建失败。此破坏性更改会影响采用 KGP 的应用和 Flutter 插件。
Flutter 团队增加了临时的向前兼容性,以确保能安全构建现有项目。未来版本将移除对手动应用 KGP 的支持。
针对应用开发者的说明
如果您开发 Flutter 应用,则需要更新 Android 构建文件,以移除单独的 Kotlin Gradle 插件 (KGP)。
注意: 如果您迁移的应用使用的是仍采用 KGP 的 Flutter 插件,构建将会失败。由于只有插件作者可以解决这个问题,请向插件作者报告问题。
针对插件作者的说明
插件的迁移过程需要类似的 Gradle 文件更改,以及重要的版本约束更新。为确保兼容性,您必须更新pubspec.yaml文件,将最低 Flutter 版本约束设置为 3.44。
ABI 过滤变更
ABI 决定了您的编译应用支持哪些设备硬件架构 (如 ARM 或 x86)。Flutter 曾经以
编程
方式将 ABI 过滤器应用于每个特定构建类型,但现在改为只需在基本defaultConfig代码块中配置一次。由于 AGP 9 将默认配置与特定构建类型和变体相结合,而不是覆盖默认配置,使用自定义 ABI 设置需要额外的步骤。
如果您的应用在特定构建类型或产品变体中使用自定义abiFilters,则您现在需要在构建或运行应用时传递-Pdisable-abi-filtering=true标志。
iOS 支持
Swift Package Manager 现已成为iOS 和 macOS 的默认设置
从 Flutter 3.44 开始,Swift Package Manager (SwiftPM) 将取代 CocoaPods 成为 iOS 和 macOS 应用的默认依赖项管理器。Flutter CLI 会自动处理此迁移。当您构建或运行应用时,CLI 会更新您的 Xcode 项目以使用 SwiftPM,从而使您无需管理 Ruby 或 CocoaPods 安装!
Add-to-App 集成也变得更加灵活。如果将 Flutter 嵌入到现有的 iOS 应用中,新的flutter build swift-package命令会将 Flutter 应用或 add-to-app 模块打包为 Swift Package,以便您在原生项目中轻松使用。
如果您的应用依赖仍然需要 CocoaPods 的插件,Flutter CLI 将打印警告,并暂时回退到 CocoaPods 来处理这些依赖项。我们建议请求这些软件包维护者进行更新,因为对 CocoaPods 的支持最终将被完全移除。为了鼓励整个生态系统采用 SwiftPM,支持 SwiftPM 的软件包现在可以在 pub.dev 评分中获得额外加分。
如果您需要维护 iOS 或 macOS 插件,则必须将 SwiftPM 支持添加到您的软件包中。如果您已在 2024 年试点期间迁移,请务必在Package.swift文件中也将FlutterF
ram
ework添加为依赖项。
如果 SwiftPM 导致您的项目出现中断问题,您可以通过在pubspec.yaml中设置--enable-swift-package-manager: false来暂时禁用它。如果您使用此方式选择退出,请在 GitHub 上提交错误报告,并附上您的 Xcode 项目文件,以便我们跟进调查。请注意,此选择退出选项最终将被移除。
Flutter 支持 UIScene
从 iOS 13 开始,Apple 引入了基于 "Scene" 的生命周期,以支持多窗口体验。在 WW
DC
2025 大会期间,Apple 宣布,使用最新 SDK 构建的应用将很快需要使用UIScene生命周期来启动。此更新对于满足 Apple 即将推出的 iOS 版本的要求至关重要。
Flutter 3.44 中未引入新的变更,但我们想提醒您在 Apple 开始默认强制使用此新 API 之前进行迁移。如果AppDelegate未经过自定义,Flutter CLI 会自动迁移您的应用。但是,如果您的代码修改了界面生命周期事件,则应遵循完整的迁移指南。
iOS 预测文本 (实验性)
我们将为文本输入字段引入对原生 iOS 内联预测文本的实验性支持 (#183650)。此功能在默认关闭,但您可以通过启用Tex
tF
ield.enableInlinePrediction来选择开启并测试。启用后,在您的应用中输入文本的用户可以通过按空格键接受 iOS 预测的文本 (例如,键入 "My n" 后接受 "ame")。请注意,我们仍在积极优化此预测文本的视觉样式,若您在我们最终确定此功能期间提供反馈,我们将不胜感激。
Web
无障碍功能
无障碍功能和用户偏好一致性也得到了极大增强,现已直接支持浏览器的prefers-reduced-motion设置自动禁用动画,以及可使用aria-description即时获取对表单验证错误的屏幕阅读器反馈。
平台和工具
开发工作流和浏览器集成比以往更加顺畅。该引擎当前通过在焦点切换中复用 DOM 表单来处理 iOS 26 Safari 中的autofill功能,同时通过改进网页滚动和键盘事件合成来实现强大的可靠性。此外,CLI 通过直接为flutter run提供--base-href支持,来简化 Web 应用编排,从而与生产构建配置相匹配。
桌面支持
我们很高兴宣布与 Canonical 扩大合作伙伴关系,Canonical 现在将担任 Flutter Desktop 的主要维护者和战略管理者。凭借其深厚的技术专长,Canonical 将主导 Flutter Desktop 路线图,并负责监督 Linux、Windows 和 macOS 嵌入器的维护。
此次合作只是更广泛生态系统扩张的第一步。未来,我们将积极与更多合作伙伴扩展治理体系,将 Flutter 的高性能、多平台体验带到更多环境和行业。
窗口化 API (实验性)
注意:窗口化功能目前仅适用于main 分支。这些功能尚不适用于生产环境。
△ Flutter 现在支持跨平台工具提示 (Tooltips) 和独立的对话框窗口
Canonical 在桌面端的实验性窗口化 API 方面持续取得出色的进展!新功能包括:
工具提示:Flutter 现在支持跨 Linux、macOS 和 Windows 的工具提示窗口 (#182348、#180895、#179147)。
弹出式窗口:Flutter 现在支持 macOS 上的弹出式窗口 (#182371),预计未来版本将支持 Linux 和 Windows。
对话框:Material 的show
Dialog
函数现在可在支持窗口化的平台上创建一个独立的子对话框窗口 (#181861)。
最后,Linux 现在支持内容自适应视图 (#182924)。这使您可以根据其内容动态调整窗口的大小,对于弹出式窗口或工具提示窗口非常有用。
Windows 触控笔支持
使用 Flutter 构建的 Windows 应用为数字艺术家和记笔记的用户带来了重大升级!得益于社区成员CodeDoctorDE的出色贡献,Flutter Windows 现在支持触控笔输入,包括对触控笔旋转和压力灵敏度的精确跟踪。
嵌入式
实现
丰田
丰田 RAV4 是 2025 年全球最畅销的车型。现在,2026 款 RAV4 正使用 Flutter 为其多媒体系统提供支持。
不久前,我们有机会前往德克萨斯州普莱诺,并参观丰田汽车北美公司和丰田互联办公室,与工程团队讨论 Flutter 如何在设计、构建和交付多媒体系统方面为他们带来巨大改变,即把办公室的测试单元转化为真正在车道上行驶的汽车。
感谢丰田汽车北美公司和丰田互联团队的热情接待!
LG 即将推出 webOS SDK,帮助开发者轻松构建针对 WebOS 设备的 Flutter 应用,从而赋能 Flutter 在大屏设备及更多领域的应用。
webOS SDK 将包括对 Firebase、视频播放器、游戏手柄等平台的插件支持。它甚至还支持您熟悉和喜爱的所有 Flutter 功能,例如有状态的热重载以及使用 Riverpod 的状态管理。
图形和引擎增强
此版本为 Impeller 后端带来了有针对性的渲染和性能增强。
Impeller 改进
Vulkan
此版本包括几项 Vulkan 改进,包括更好的缓存内存管理,以及在丢帧情况下更高效的 GPU/CPU 同步。
使用 SDF 创建更清晰的圆圈
渲染圆圈的数学
算法
已更新,以支持使用符号距离函数呈现更清晰的圆圈。此前某些情况下会出现锯齿现象的问题现已得到修复。(#183536、#183184)
阴影和透视修复
改进 Impeller 处理透视矩阵的方式,修正了阴影和透视投影变换的渲染行为。(#181434、#183187)
FragmentShader 的改进
得益于以下增强功能,现在编写片段着色器变得更加直观,更不容易出错。
通过名称获取 Uniform 的 API
现在,您可以通过名称而不是手动偏移量绑定着色器中的 Uniform 变量,从而大大简化着色器代码设置:
voidsetUp(ui.FragmentShader shader) {
shader.getUniformFloat('foobar').set(1.234);
}
更清晰的着色程序编译器诊断信息
现在,着色器编译器在编译与 Skia 不兼容的着色器时会生成警告,帮助您在部署之前识别跨平台渲染问题 (#182786、#183146)。
Framework
此版本在重大架构调整、与对质量及社区驱动优化的严格关注之间取得了平衡。随着我们开始将 Material 和 Cupertino 库战略性地解耦为独立软件包,核心框架将随着 Web 渲染的重大更新、基础稳定性的改进和增强的平台集成而继续成熟发展。
Material 和 Cupertino 更新
此版本标志着 Material 和 Cupertino 库的一个重要里程碑。从这个版本开始,这些库已被冻结。这代表着它们在核心框架中的最后一次更新:material_ui和cupertino_ui。到下一个稳定版本,当前框架中这些库的版本将被弃用,您将能够迁移到全新独立版本的软件包。
尽管代码库已被冻结,此版本仍有大量改进。其中一大亮点是 Cupertino 库菜单的现代化改造。新的CupertinoMenuAnchorWidget 建立在灵活的RawMenuAnchor的基础上,为 iOS 应用提供了更稳健、感受更贴近原生的菜单体验 (#182036)。而这要归功于社区成员davidhicks980的大量贡献,该成员还是 RawMenuAnchor Widget 的创建者。
在 Material 方面,随着在MenuAnchor类中添加 Material 3 动画,菜单页得到了优化。这些动画提供更流畅、更灵敏的观感,
Sub
menuButton上新的hoverOpenDelay参数可让您更好地控制子菜单交互。默认情况下,该动画默认处于禁用状态,可通过将 "animated" 设置为 "true" 来启用 (#176494)。
此版本还使CupertinoSheetRoute中可滚动的内容能够与拖拽动画无缝协作,从而在滚动和关闭工作表之间实现更流畅的过渡 (#177337)。对于需要自定义拖拽区域的开发者,新的scrollableBuilder可让您将托管的ScrollController传递给主体的可滚动区域,以便为您协调工作表拖拽。
CarouselView组件在此版本中获得了重大的功能改进。它现在支持无限滚动 (#175710),因此您可以创建无缝循环的轮播效果。它还新增了onIndexChanged回调函数,并在其
控制器
上提供了le
adi
ngItem属性,从而在用户与其交互时能更清晰地掌握其状态 (#180667)。
借助新的设计原语,可以更轻松地实现复杂的界面效果,例如新的ShapedInputBorder。这能让 Material Widget 通过指定任何ShapeBorder来使用形状创建输入边框。例如,在使用RoundedSuperellipseBorder使 Material 输入边框以 iOS 样式显示时很有用 (#177220)。同样,CupertinoFocusHalo现在支持超椭圆形状,确保不同 Widget 几何形状上的焦点指示器一致 (#180724)。
几个现有的 Widget 也已得到优化。作为 Material 中ExpansionTile底层驱动的Expansible组件现在功能更强大。ExpansibleController和ExpansionTileController都新增了一个 toggle 方法,并附有改进的文档和示例 (#181320、#180273)。此外,Material 的列表条目组件RadioListTile、CheckboxListTile和SwitchListTile现在能正确接受WidgetStatesController,允许对其视觉状态进行更多程序化控制 (#180367)。
无障碍功能:
为所有用户提供更具包容性的体验
让所有人都可以访问应用仍然是 Flutter 框架的核心优先事项。此版本引入了与各平台特定无障碍设置的更深层次集成,提高了语义播报的精确度,并完善了常见界面组件的无障碍体验。
对于 iOS 开发者,此版本添加了对几项新的无障碍运动功能的支持 (#178102)。您的应用现在可以响应用户对以下内容的偏好设置:
自动播放动画图像:检测用户何时希望自动暂停播放 GIF 或其他动画内容。
自动播放视频预览:告知应用用户是否已禁用视频预览的自动播放。
首选不闪烁光标:允许应用为发现闪烁光标分散注意力或难以跟踪的用户提供稳定、不闪烁的文本指示器。
这些设置通过AccessibilityFeatures对象公开,使您可以在 iOS 上构建更具响应性和尊重性的界面。
进度指示器也获得了体验优化。现在,您可以将百分比字符串 (如 "50%") 用作ProgressIndicator的SemanticsValue(#183670)。这能让屏幕阅读器以更自然和更易读的格式播报进度,而不仅仅是使用原始的十进制数值。
此版本还完善了核心 Widget 的语义。SliderWidget 的语义节点已重构,以更准确地反映其大小和位置,从而改善通过触摸探索或辅助设备导航的用户体验 (#184168)。此外,滚动视图的修复可确保不可见的无障碍元素不再错误地呈现在可滚动内容之前,从而实现更清晰、符合预期的导航流程 (#184155)。
这些变化共同确保了 Flutter 应用持续在所有平台上提供高质量、包容性的体验。
零宽度/高度 Widget 的弹性
此版本的一项主要工作是致力于提高在"0x0 环境" (Widget 的宽度或高度为零的场景) 中渲染 Widget 时的框架稳定性,此前这可能会触发布局错误或意外崩溃。得益于社区成员ahmedsameha1的持续稳定的贡献,我们在许多核心 Widget 中添加了零尺寸的覆盖范围,包括Hero(#180954)、Icon(#181021)、AnimatedPadding(#181235) 和GridPaper(#180906)。这些更新可确保您的应用在复杂的布局过渡期间或在高度受限的视口内保持稳健。
SelectableRegion 的改进
我们已经解决SelectableRegion内的两个关键问题,以提高原生平台和 Web 平台的布局保真度和文本选择行为:
Web 布局约束保留
以前在 Web 上渲染时,SelectableRegion可能会导致其子项意外缩小。现在,它可以正确地将所有未修改的布局约束传递给其子组件,从而确保尺寸行为的一致性 (#184083)。
多行复制精度
SelectableRegion中的文本选择现在更加精确:当用户选择和复制跨越多行的文本时,换行符现在可以正确保留在复制的输出中,而不会丢失 (#184421)。
重大变更和弃用
作为持续致力于实现 Flutter 框架现代化和改进的一部分,此版本包含几项重要弃用和重大变更。
RawMenuAnchor 回调调整
已调整RawMenuAnchor一些回调的调用顺序,以实现更灵活且可预测的自定义。
此版本中的主要弃用内容包括:
CupertinoSheetRoute:showCupertinoSheet和CupertinoSheetRoute中的builder与pageBuilder参数现已弃用,取而代之的是scrollableBuilder(#177337)。此更改可以将可滚动内容与工作表的拖拽动画更好地集成。
ReorderableListView:onReorder回调已被弃用,取而代之的是更精确的onReorderItem(#178242)。新的回调提供了一个更可预测的newIndex,可以在重新插入项目之前删除项目。
工具:Flutter 工具中的--web-hot-reload标志现已被弃用,因为 Web 的热重载现已通过更现代的机制处理 (#181884)。此外,plugin_ffi模板已被弃用,取而代之的是具有 FFI 支持且更稳健的插件模板 (#181588)。
Flutter 无处不在,无时不在
Flutter 的应用遍布移动设备、桌面端、Web 和
嵌入式系统
,其各个功能本身已令人印象深刻,而它们合力更可为开发者提供一个强大的平台,赋能超过 150 万开发者构建日常随时随地经历的卓越体验。从商业工具和日常应用 (如NotebookLM、Talabat、Zoho和Karaca),到备受瞩目的嵌入式实现 (如 2026 年丰田 RAV4 的信息娱乐系统和 LG 的 webOS 设备),您都可以看到 Flutter 的身影。
Flutter 集众智而建,为大众而生
Flutter 的成功建立在您的反馈之上!无论是通过评论、问题报告还是即将推出的开发者调查,我们都致力于与您持续沟通。您的意见推动着我们打造出您喜爱的功能,请继续与我们分享您的想法。
该生态系统不仅依赖于 LG、丰田和 Canonical 等行业领导者,也由他们共同构建,而最重要的是,依赖于每天使用 Flutter 构建应用的 150 多万名开发者。我们很高兴继续与您共建和发展这个出色的 Dart 和 Flutter 生态系统。
要体验所有新功能、优化和图形增强功能,只需以下简单操作:
flutterupgrade
Google
Google
+关注
关注
5
文章
1825
浏览量
60938
AI
AI
+关注
关注
92
文章
43764
浏览量
304485
智能体
智能体
+关注
关注
1
文章
730
浏览量
11743
原文标题:Flutter 3.44 现已推出|一文详解重磅更新,助力您高效开发
文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。
