作者 | Sergio De Simone
译者 | 明知山
策划 | Tina
谷歌跨平台 UI 套件 Flutter 最新版本为 Flutter 3.27,该版本带来了许多变化,包括改进的 Cupertino 小部件,更好地遵循苹果的 UI 指南,CarouselView、列表行和列、ModalRoutes 过渡等新特性。此外,新版本将 Impeller 渲染引擎设为默认引擎,性能得到显著提升,增强了对工具和并发的支持。
Cupertino 是一组严格遵循苹果人机界面指南的小部件。Flutter 3.27 更新了其中的一些,以提高其保真度,包括 CupertinoCheckbox、CupertinoRadio 和 CupertinoSlidingSegmentedControl。它还扩展了 CupertinoCheckbox 和 CupertinoSwitch,使它们更具可配置性,并使 CupertinoButton 与 iOS 15 引入的最新可定制性选项保持一致。其他改进涉及 CupertinoActionSheet、CupertinoContextMenu、CupertinoDatePicker 和 CupertinoMagnifier。
在 Android 原生 Material UI 方面,Flutter 3.27 对 CarouselView 进行了扩展,提供了 CarouselView.weighted,开发者可以使用 flexWeights 参数定义更动态的布局,指定在 CarouselView 中占用的相对权重。此外,SegmentedButton 可以垂直对齐,一些小部件也经过修复,以更好地遵循 Material 3 设计规范。
Flutter 3.27 还改进了 ModalRoutes、文本选择以及行和列的间距。ModalRoutes 通过占据整个导航器区域来阻止与先前路由的交互,现在可以将从路由的退出过渡与新路由的进入过渡同步,使它们能够很好地协同工作。文本选择现在支持 Shift + Click 手势,将选择范围扩展到 Linux、macOS 和 Windows 上的点击位置。行和列可以通过间距参数来调整它们之间的偏移,使布局更加灵活。
经过一年多的预览,新的 Impeller 渲染引擎已成为现代 Android 设备上的默认引擎,取代了旧的 Skia。Skia 仍可在遇到兼容性问题时作为备选方案使用。Impeller 尝试在编译时完成 Skia 在运行时执行的多项任务,例如构建着色器和反射以及提前创建管道状态对象,同时改进缓存机制,使性能更加可预测。它还通过标记纹理和缓冲区,并允许在不影响渲染性能的情况下将动画捕获到磁盘来改进对调试的支持。在必要时,Impeller 可以将单帧工作负载分配到多个线程以提高性能。
未来我们将继续改进 Impeller 在 Android 上的性能和保真度。此外,我们打算让 Impeller 的 OpenGL 后端达到生产就绪状态,并完全弃用 Skia。
其他值得一提的改进包括 iOS 上的渲染性能提升、对 Swift Package Manager 的支持,以及 Android 的全屏和自由形态支持。
查看英文原文:
https://www.infoq.com/news/2024/12/flutter-3-27-released/
声明:本文由 InfoQ 翻译,未经许可禁止转载。
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有