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

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.mzph.cn/news/881722.shtml

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

相关文章

Open WebUI | 自托管的类 ChatGPT 网站

Open WebUI 是一个扩展性强、功能丰富且用户友好的自托管 WebUI,支持 ChatGPT 网页端的大部分功能,支持各类模型服务,包括 Ollama 和 OpenAI 的 API。该项目在 GitHub 上已有 38k 星,非常受欢迎。 功能介绍 本篇介绍该项目的功能…

分布式 ID

背景 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。随着数据日渐增长,对数据分库分表后也需要有一个唯一ID来标识一条数据或消息,数据库的自增 ID 显然不能满足需求;此时一个能够生成全局唯一 ID 的系统是非常必…

Android中的Activity(案例+代码+效果图)

目录 1.Activity的生命周期 核心生命周期回调 1)onCreate() 2)onStart() 3)onResume() 4)onPause() 5)onStop() 6)onRestart() 7)onDestroy() 8)生命周期图示 10)注意事项…

Android实现App内直接预览本地PDF文件

在App内实现直接预览pdf文件,而不是通过调用第三方软件,如WPS office等打开pdf。 主要思路:通过PhotoView将pdf读取为图片流进行展示。 一、首先,获取对本地文件读取的权限 在AndrooidManifest.xml中声明权限,以及页…

神经网络整体架构

文章目录 1.输入层Input2.卷积层Conv3.激活函数层(一)Sigmoid 函数(二)Tanh 函数(三)修正线性单元ReLU(四)Leaky ReLU函数(带泄露的Relu)(五)参数化ReLU 4.池化层POOL5.全连接层FC6.输出层Output 用全连接神经网络处理大尺寸图像具有三个明显的缺点: ①将图像展开为…

gitlab-ci 集成 k3s 部署spring boot 应用

环境 一台ECS gitlab 16.10 一台ECS gitlab-runner docker方式 一台腾讯云服务器 k3s k3s version v1.30.5k3s1 (9b586704) go version go1.22.6 本地: idea 2024 准备开始 gitlab上创建"api"仓库,本地IDEA 创建spring boot web demo项目k8s-gitlab-demo. 确保能…

【计算机网络】计算机网络相关术语

文章目录 NAT概述NAT的基本概念NAT的工作原理1. **基本NAT(静态NAT)**2. **动态NAT**3. **NAPT(网络地址端口转换,也称为PAT)** 底层实现原理1. **数据包处理**2. **转换表**3. **超时机制** NAT的优点NAT的缺点总结 P…

跟踪用户状态,http协议无状态 Cookie HttpSession,Session和Cookie的关系

1.概念分析 跟踪用户状态指的是web应用能够分辨请求属于哪个用户,进而记录用户的状态,从而为用户提供连续的针对性的服务。比如有多个客户在同一个购物网站上购物,每一个用户都会有一个虚拟的购物车。当某个客户发送请求将商品添加到购物车时…

初学Qt之环境安装与 hello word

环境: Qt Creator 4.11.0 (Community) Qt 5.14.0 目录 1.Qt环境配置 1.1 下载Qt 5.14.0 1.2 注册Qt账号 1.3 安装Qt 1.4 配置环境变量 2.创建项目 2.1 创建一个项目 2.2 初始代码解析 2.3 可视化GUI ​编辑 2.4 hello word 2.4.1 可视化hello word …

Spring Boot知识管理系统:创新与实践

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…

公开课学习:软件测试面试3大难题

1.验证码机制的处理:自动化遇到验证码怎么办?怎么测试? 流程:先识别元素,再对元素进行操作。实际上,验证码无法用自动化技术操作解决,都是由开发给万能码,或者屏蔽验证码去解决!那如果不能屏…

数据结构——优先级队列(堆)

概念: 在操作数据的时候,操作的数据具有优先级,需要返回最高级别的优先级数据或者添加新对象时就需要用到优先级队列。 jdk1.8中的PrioriytQueue底层实现了堆这种数据结构实际上,堆其实就是在完全二叉树进行调整而来。 堆&#x…

C++STL--------vector

文章目录 一、vector常用接口介绍1、initializer_list2、接口有很多类似3、typeid(类型).name()4、find() 函数5、内置类型构造 二、vector()常用接口模拟实现 截图来源网站:https://legacy.cplusplus.com/reference/vector/vector/ 一、vector常用接口介绍 是一个…

哪种护眼大路灯孩子用着最好?公认最好的护眼大路灯

哪种护眼大路灯孩子用着最好?最近也有不少家长关注到了孩子视力健康的这个情况,很着急开始寻找各种能够减少孩子因为不良光线影响视力健康的方法,其中大路灯以良好的表现成为家长们的首选,但快速发展的市场中,却涌入了…

【C】C语言常见概念~

C语言常见概念 转义字符 转义字符&#xff0c;顾名思义&#xff0c;转变原来意思的字符 比如 #include <stdio.h> int main() {printf("abcndef");return 0; }输出的结果为&#xff1a; 将代码修改一下&#xff1a; #include <stdio.h> int main(…

双目视觉搭配YOLO实现3D测量

一、简介 双目&#xff08;Stereo Vision&#xff09;技术是一种利用两个相机来模拟人眼视觉的技术。通过对两个相机获取到的图像进行分析和匹配&#xff0c;可以计算出物体的深度信息。双目技术可以实现物体的三维重建、距离测量、运动分析等应用。 双目技术的原理是通过两…

SpringBoot基础(五):集成JUnit5

SpringBoot基础系列文章 SpringBoot基础(一)&#xff1a;快速入门 SpringBoot基础(二)&#xff1a;配置文件详解 SpringBoot基础(三)&#xff1a;Logback日志 SpringBoot基础(四)&#xff1a;bean的多种加载方式 SpringBoot基础(五)&#xff1a;集成JUnit5 目录 一、JUnit…

AIGC毕设项目分享:基于RAG的数字人对话系统及其应用

本研究的主要目标是设计并实现一个基于检索增强生成&#xff08;RAG&#xff09;技术的数字人对话系统&#xff0c;旨在提升数字人系统在多轮对话中的上下文管理、情境感知能力以及动态内容生成效果。系统结合了深度学习中的最新大语言模型技术&#xff0c;通过引入RAG框架来增…

K8S配置MySQL主从自动水平扩展

前提环境 操作系统Ubuntu 22.04 K8S 1.28.2集群&#xff08;1个master2个node&#xff09; MySQL 5.7.44部署在K8S的主从集群 metrics-server v0.6.4 概念简介 在K8s中扩缩容分为两种 ●Node层面&#xff1a;对K8s物理节点扩容和缩容&#xff0c;根据业务规模实现物理节点自动扩…

爬虫案例——网易新闻数据的爬取

案例需求&#xff1a; 1.爬取该新闻网站——&#xff08;网易新闻&#xff09;的数据&#xff0c;包括标题和链接 2.爬取所有数据&#xff08;翻页参数&#xff09; 3.利用jsonpath解析数据 分析&#xff1a; 该网站属于异步加载网站——直接网页中拿不到&#xff0c;需要…