Flutter 3.24 发布:GPU模块及多视图嵌入功能

news2025/1/15 23:33:53

Flutter 3.24 发布:GPU模块及多视图嵌入功能

Flutter 3.24 带来了许多新功能和改进,让开发应用程序变得更加容易和有趣。这个版本重点展示了 Flutter GPU 的预览功能,让应用程序可以直接使用高级图形和 3D 场景功能。

此外,网页应用现在可以嵌入多个 Flutter 视图,增加了应用的灵活性。最后,官方还增加了视频广告功能,帮助您通过应用赚钱。

在过去的几个月里,Flutter 社区非常活跃,共有 852 个框架更新和 615 个引擎更新。官方欢迎 49 位新贡献者的加入,正是大家的热情和努力推动了 Flutter 的发展。

让我们来看看 Flutter 3.24 的所有新功能和改进吧!

Flutter 框架

新的 Sliver 组件

此次更新新增了两个 Sliver 组件,用于构建动态的应用程序标题:

  • PinnedHeaderSliver
  • SliverResizingHeader

这些新的 Sliver 可以帮助您创建可以浮动、固定或随着用户滚动而调整大小的标题。相比于现有的 [SliverPersistentHeader](https://api.flutter.dev/flutter/widgets/SliverPersistentHeader-class.html)[SliverAppBar](http://sliverappbar/),这些新的组件提供了更简单的 API,可以更灵活地组合使用。

Cupertino 库的更新

此次更新提升了 [CupertinoActionSheet](https://api.flutter.dev/flutter/cupertino/CupertinoActionSheet-class.html) 的体验。现在按下按钮时会有触觉反馈,按钮的字体大小和粗细也和原生应用一致。

另外,官方还为 [CupertinoButton](https://api.flutter.dev/flutter/cupertino/CupertinoButton-class.html) 增加了新的焦点属性,您还可以自定义禁用状态下 [CupertinoTextField](https://api.flutter.dev/flutter/cupertino/CupertinoTextField-class.html) 的颜色。Cupertino 库还在不断改进,未来会有更多更新。

TreeView 组件

[two_dimensional_scrollables](https://pub.dev/packages/two_dimensional_scrollables) 包增加了 [TreeView](https://pub.dev/documentation/two_dimensional_scrollables/latest/two_dimensional_scrollables/TreeView-class.html) 组件和相关类,用于构建可以从两个方向滚动的树状组件。

同时,TreeSliver 也被添加到框架中,可以用于构建单向滚动的树状结构。TreeViewTreeSliver 的 API 一致,使它们之间的切换更加方便,适用于不同的使用场景。

CarouselView 组件

此次更新引入了 Material Design 轮播图 组件:CarouselViewCarouselView 提供了一种可以滚动到容器边缘的布局,项目在滚动时可以动态改变大小。

更多小部件功能

一些核心小部件逻辑从 Material 库迁移到 Widgets 库中,以便更广泛地使用。这些改进包括:

  • [Feedback](https://github.com/flutter/flutter/pull/148523) 小部件,可轻松访问设备的触觉和音频反馈。
  • [ToggleableStateMixin](https://github.com/flutter/flutter/pull/148272)[ToggleablePainter](https://github.com/flutter/flutter/pull/148272),用于构建切换类小部件(如复选框、开关、单选按钮)的基类。

AnimationStatus 的新功能

社区成员 @nate-thegrate 为 AnimationStatus 增加了新功能,添加了以下 getter 方法:

  • isDismissed
  • isCompleted
  • isRunning
  • isForwardOrCompleted

这些方法帮助开发者更方便地检查动画的状态。此外,AnimationController 还增加了一个 [toggle](https://api.flutter.dev/flutter/animation/AnimationController/toggle.html) 方法,用于切换动画的方向。

SelectionArea 的改进

Flutter 的 [SelectionArea](https://api.flutter.dev/flutter/material/SelectionArea-class.html) 现在支持更多与鼠标三击和触摸设备双击相关的手势,默认情况下,SelectionArea[SelectableRegion](https://api.flutter.dev/flutter/widgets/SelectableRegion-class.html) 小部件使用这些新手势。

三击操作可以选择整段文本,而双击操作可以选择单词,使文本选择变得更加简单。

引擎

Impeller

提升性能和效果

团队一直在努力提升 Impeller 的性能和保真度,尤其是即将取消 iOS 上的 Impeller 选择退出。例如,一系列改进大幅提高了文本渲染性能,特别是在滚动大量表情符号时,消除了卡顿现象。

通过解决一些问题,Impeller 现在在文本粗细、间距和字距调整上与旧版渲染器表现一致。

Android 预览

此次版本中,官方继续在 Android 平台预览 Impeller。由于 Android 14 的一个 bug,影响了 Impeller 对平台视图的支持,预览期被延长。官方希望开发者升级到最新版本并提供反馈,这对于 Impeller 在 Android 平台上的成功至关重要。

缩小图像的默认设置改进

在此版本中,图像的默认 FilterQualityFilterQuality.low 改为 FilterQuality.medium,以减少像素化效果并提高渲染速度。

Flutter GPU 预览

Flutter 引入了一项主要的渲染更新:Flutter GPU。这个低级图形 API 允许开发者使用 Dart 代码和 GLSL 着色器创建自定义渲染器,而不需要任何原生平台代码。

Flutter GPU 让应用程序能够直接渲染高级图形和 3D 场景,目前支持 iOS、macOS 和 Android 平台。未来,Flutter GPU 会逐渐增加更多功能,官方将提供更高层次的渲染库来简化这些高级功能的使用。

开发者可以通过切换到主渠道并添加 flutter_gpu 包来开始使用 Flutter GPU。如需详细了解,请查看Flutter GPU 博客文章。

Web

多视图嵌入

Flutter 网页应用现在可以利用多视图嵌入功能,让开发者同时将内容渲染到多个 HTML 元素中。这种灵活性特别适合需要多个独立视图的复杂网页应用。

要启用多视图模式,请在 flutter_bootstrap.js 文件中设置 multiViewEnabled: true,然后可以通过 JavaScript 动态添加或移除视图,Flutter 会相应地更新内容。

变现

视频广告变现支持

官方推出了新的 Interactive Media Ads (IMA) 插件,支持 Flutter 移动应用中的流视频广告变现。这个插件为 Flutter 应用提供了更多的广告收入机会,例如播放视频前先展示 15 秒的广告。

当前版本支持在 Android 和 iOS 平台上播放前贴片广告,未来将增加中贴片广告的支持。官方鼓励开发者开始在应用中尝试 IMA 插件。

iOS

Swift Package Manager 支持

Flutter 3.24 增加了对 Swift Package Manager 的初步支持,带来了一些好处:

  1. 可以访问 Swift 包生态系统。
  2. 简化 Flutter 的安装流程,未来将不再需要安装 Ruby 和 CocoaPods。

生态系统

Shared Preferences 插件更新

官方为 shared_preferences 插件增加了两个新 API:SharedPreferencesAsync 和 SharedPreferencesWithCache。它们提供了异步和缓存的偏好设置访问方式,使应用能够更好地管理偏好数据。

开发工具和 IDE

此次更新为 Flutter DevTools 工具套件带来了一些改进,例如 Rebuild Stats 功能可以帮助您追踪小部件的重建次数。另外,官方对 Network profilerFlutter Deep Links tool 进行了优化,以便为开发者提供更好的体验。

要了解 Flutter 3.24 的所有更新,请查看 DevTools 2.35.0、2.36.0 和 2.37.2 的发行说明。

重大更改和弃用

此次版本包含了一些重大更改,例如 Navigator 的 pages API 和 PopScope 中的泛型类型。查看重大更改页面 以获取完整的迁移指南。

结论

Flutter 的成功离不开社区的支持。要详细了解本次发布的内容,官方邀请您查看发布说明 和 变更日志。

Flutter 3.24 和 Dart 3.5 现已在稳定渠道发布,快来升级并尝试这些新功能吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199124.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传智杯 第六届—B

题目: 擂台赛要开始了,现在有 n 名战士,其中第 i 名战士的战斗力为 ai​。现在准备从这些战士中挑两名战士进入擂台赛进行对战,由于观众们更喜欢看势均力敌的比赛,所以我们也要挑选两个战斗力尽可能相近的战士进行参赛…

Linux-分析 IO 瓶颈手册

分析IO瓶颈 此文主要内容:I/O性能重要指标、主要排查工具、主要排查手段、工具图示 磁盘 I/O 性能指标 四个核心的磁盘 I/O 指标 使用率:是指磁盘忙处理 I/O 请求的百分比。过高的使用率(比如超过 60%)通常意味着磁盘 I/O 存在…

Spring系列 Bean的生命周期

文章目录 初始化时机单例初始化流程getBeandoGetBeangetSingleton(String) 获取单例getSingleton(String, ObjectFactory) 创建单例beforeSingletonCreationcreateBeanafterSingletonCreation createBean 创建对象doCreateBeanaddSingletonFactory createBeanInstance 创建 Bea…

基于springboot vue 学生就业信息管理系统设计与实现

博主介绍:专注于Java(springboot ssm springcloud等开发框架) vue .net php phython node.js uniapp小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆…

水库大坝安全监测预警系统守护大坝安全卫士

一、系统背景 近年来,受全球气候变化和人类活动影响,极端天气发生频度强度增加,加之我国城市化进程中,水库下游人口聚集、基础设施密集,对水库工程安全运行提出了新的更高要求。“十四五”以来我国建成并投入使用37593…

NeRS: Neural Reflectance Surfaces for Sparse-view 3D Reconstruction in the Wild

1. 2.优点1:我们的方法仅依赖于近似的相机位姿估计和粗略的类别级形状模板。 3.我们的关键见解是,我们可以强制执行基于表面的 3D 表示,而不是允许广泛用于体积表示的无约束密度。重要的是,这允许依赖于视图的外观变化 4.更重要…

迪士尼数据泄露事件:全面审视数据安全策略与未来防护方向

迪士尼数据泄露事件概述 一、 事件背景以及影响 在全球数字化转型加速的浪潮中,数据安全已成为企业运营不可忽视的基石。 华特迪士尼公司,作为全球知名的娱乐传媒巨头,其数据泄露事件无疑为业界敲响了警钟。此次事件不仅揭示了数据保护的严…

从0开始下载安装并使用unity

首先我们要在浏览器上找到unity的官网 这一个就是了,我们点进去后是这个界面: 然后我们点击上面这张图的左下角的“下载Unity Hub”,推荐后续安装都装在D盘: 这里他会让我们注册一个账号,如果之前有的话登录就行了&am…

2024年第二届龙信杯 WP

2024年龙信杯 author:mumuzi date:2024/9/30 取证的一手更新都在自己的博客上,分区为Forensic,https://mumuzi7179.github.io/或https://mumuzi.blog/ DK盾云服务器:DK盾 镜像下载地址: https://pan.ba…

i18n多语言项目批量翻译工具(支持84种语言)

这里写自定义目录标题 打开‘i18n翻译助手’小程序快捷访问 打开‘i18n翻译助手’小程序 1.将需要翻译的json文件复制到输入框(建议一次不要翻译过多,测试1000条以内没什么问题) 2.等待翻译 3.翻译完成,复制结果 快捷访问

极狐GitLab 发布安全补丁版本 17.4.1、17.3.4、17.2.8

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…

SpringBoot框架:服装生产管理的智能助手

4 系统设计 4.1 系统结构设计 在结构设计过程中,首先对系统进行需求分析,然后进行系统初步设计,将系统功能模块细化,具体分析每一个功能模块具体应该首先哪些功能,最后将各个模块进行整合,实现系统结构的…

室内人行与导航系统有哪些多样化的功能?

在现代化建筑的迷宫中,室内人行与导航系统如同一位无形的向导,引领我们穿梭于复杂的空间之中,极大地提升了人们在室内环境中的便捷性和安全性。这一技术领域的飞速发展,不仅体现在定位精度的提升上,更在于其多样化的功…

如何自己动手实现一个图片解答小助手

有一张图片如下所示: Kimi上有一个功能,就是解析图片内容,给出回答: 这样可以用于拍照向AI提问的场景,我自己也有这方面的需求,因此动手实践了一下。 自己动手实现的效果如下所示: 那么自己如何…

websocket连接异常报错1006

目录: 1、问题现象2、问题原因3、解决方案 1、问题现象 WebSocket状态码的作用: 在WebSocket协议中,状态码用于表示连接状态和错误信息。通过状态码,我们可以快速判断连接是否成功,以及出现错误时的原因。常见的WebSo…

makefile常见问题记录

1 Makefile:8 *** missing separator. Stop. 可能原因1:makefile的命令行开头必须使用Tab键 如图1所示,红框内为一个命令行,图2的缩进由敲空格实现,会标红,报错,图3的缩进为按Tab键,语法正确&…

golang接口详解

interface(接口) 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节 在Go语言中接口(interface)是一种类型,一种抽象的类型。相较于之前章节中讲到的那…

揭秘破解密码的常见方法和手段

前言 今天小编就帮粉丝朋友科普一下,破解密码的常见方法和手段,希望看到本文的粉丝朋友,给小编点赞支持支持一波 键盘监听木马 键盘监听病毒在网吧中非常流行,它在启动后会监听用户的键盘输入事件,如果有人使用账号密…

AD画完原理图,进行编译可就是不弹出错误窗口,明明原理图有错误(AD中Error Reporting设置)

AD“工程选项”对话框用于设置大量绘图和组件配置检查,共有12个选项卡,“Error Reporting(错误报告)”是第一个选项卡。 “Error Reporting(错误报告)”选项卡包含8页错误,“Violations Associ…

千寻位置大气增强服务为高效农耕作业保驾护航

2024年9月14日广东湛江,千耘QYX农机导航用户为了抢农时,夜晚使用导航作业,但导航界面一直显示浮点解,无法进行作业,非常着急,联系当地经销商寻求解决办法,经过查看,是因为当时电离层…