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.rhkb.cn/news/446271.html

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

相关文章

win软件 超强的本地视频 图片去水印 动态水印!

AI视频图片去水印 HitPaw Watermark Remover 电脑软件,内涵安装教程,以后看到有水印的视频不怕啦,用这个就行了,可以去除动态水印! 【下载】 https://pan.quark.cn/s/1ba6f088f0b2 【应用名称】:HitPaw Watermark R…

ARIMA 模型初体验 —— 预测股票数据

第 1 步,从 twelvedata 上获取苹果 11 号 15:30 到 16:00 的 OHLC、成交量 数据。 第 2 步,编写 Python 代码(实际上可以用 R 语言,R 语言从语言的级别对分析预测提供了支持,而 Python 需要第三方库)。 …

C++ day04(友元 friend、运算符重载、String字符串)

目录 【1】友元 friend 1》概念 2》友元函数 3》友元类 4》友元成员函数 【2】运算符重载 1》概念 2》友元函数运算符重载 ​编辑 3》成员函数运算符重载 4》赋值运算符与类型转换运算符重载 5》注意事项 【3】String 字符串类 【1】友元 friend 1》概念 定义&#x…

BUUCTF-greatescape1

发现有ftp包和tcp包居多 下载解压是个流量包,使用wiresharh打开,CTRLF,按下图搜索ftp tcp18流发现ssc.key 传送,在19流发现key内容 复制保存为ssc.key, 加载key解密tls,再追踪tls流可得flag INS{OkThatWasWay2Easy} …

多元线性回归:机器学习中的经典模型探讨

引言 多元线性回归是统计学和机器学习中广泛应用的一种回归分析方法。它通过分析多个自变量与因变量之间的关系,帮助我们理解和预测数据的行为。本文将深入探讨多元线性回归的理论背景、数学原理、模型构建、技术细节及其实际应用。 一、多元线性回归的背景与发展…

基于Java的旅游网站管理系统—计算机毕业设计源码39235

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对旅游网站等问题,对旅游网站进行…

一区大黄蜂!人工蜂群算法优化!ABC-CNN-LSTM-MATT多特征分类预测

一区大黄蜂!人工蜂群算法优化!ABC-CNN-LSTM-MATT多特征分类预测 目录 一区大黄蜂!人工蜂群算法优化!ABC-CNN-LSTM-MATT多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现ABC-CNN-LSTM-MATT人工蜂群…

PDF转JPG神器!一键转换,轻松搞定文档分享

各位亲爱的小伙伴们,有没有遇到过需要把PDF文件转换成JPG图片的情况呢?今天我就来给大家推荐几款好用的PDF转JPG工具,让我们一起来看看这些工具的详细介绍和使用感受吧! 一、福昕转换器 直通车(粘贴到浏览器打开&…

获取时隔半个钟的三天与el-time-select

摘要&#xff1a; 今天遇到需求是配送时间&#xff0c;时隔半个钟的排线&#xff01;所以需要拼接时间&#xff01;例如2024-10-08 14&#xff1a;30&#xff0c;2024-10-08 15&#xff1a;00&#xff0c;2024-10-08 15&#xff1a;30 <el-form-item label"配送时间&a…

优先算法1--双指针

“一念既出&#xff0c;万山无阻。”加油陌生人&#xff01; 目录 1.双指针--移动零 2.双指针-复写零 ok&#xff0c;首先在学习之前&#xff0c;为了方便大家后面的学习&#xff0c;我们这里需要补充一个知识点&#xff0c;我这里所谓的指针&#xff0c;不是之前学习的带有…

如何构建高效的公路工程资料管理系统?

本文介绍了构建高效的公路工程资料管理系统的方法&#xff0c;涵盖了系统需求分析、功能设计、开发平台选择、开发过程、系统上线与培训、持续改进与维护等关键环节。通过合理规划和科学管理&#xff0c;可以确保系统满足用户需求&#xff0c;提高工作效率&#xff0c;保障公路…

react18+react-transition-group实现路由切换过度

效果如下 官网安装对应的插件 创建对应的样式 .fade-enter {opacity: 0; } .fade-exit {opacity: 1; } .fade-enter-active {opacity: 1; } .fade-exit-active {opacity: 0; } .fade-enter-active, .fade-exit-active {transition: opacity 500ms; }const location useLoca…

STM32 | STM32F4OTA_ESP8266_Bootloader为引导程序远程更新的代码(APP)

更新。点击上方"蓝字"关注我们 01、思路 >>> STM32F4OTA_ESP8266_Bootloader为引导程序 远程更新的代码&#xff08;APP&#xff09;:远程更新的APP Ymoden_server&#xff1a;为运行在Linux的TCP服务器 备注&#xff1a;STM32 OTA远程更新需要连接热点 电…

【实战项目】——Boost搜索引擎(五万字)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、项目的相关背景 1.1、什么是Boost库&#xff1f; 1.2、什么是搜索引擎&#xff1f; 1.3、为什么要做Boost库搜索引擎&#xff1f; 二、搜索引擎的宏观原…

【优选算法篇】双指针的优雅舞步:C++ 算法世界的浪漫探索

文章目录 C 双指针详解&#xff1a;基础题解与思维分析前言第一章&#xff1a;对撞指针1.1 移动零解题思路图解分析C代码实现易错点提示代码解读 1.2 复写零解题思路算法步骤C代码实现易错点提示代码复杂度 1.3 盛最多水的容器1. 题目链接2. 题目描述解法一&#xff08;暴力求解…

MySQL SELECT 查询(三):查询常用函数大全

MySQL SELECT 查询&#xff08;三&#xff09;&#xff1a;查询常用函数大全 1. 单行函数 单行函数是 SQL 中一类重要的函数&#xff0c;它们可以对单行数据进行处理&#xff0c;并返回单个结果。单行函数可以嵌套使用&#xff0c;并提供灵活的数据处理能力。 1.1 定义 只对单…

H7-TOOL的LUA小程序教程第14期:任意波形信号发生器,0-20mA输出和微型数控电源(2024-10-11,已更新)

LUA脚本的好处是用户可以根据自己注册的一批API&#xff08;当前TOOL已经提供了几百个函数供大家使用&#xff09;&#xff0c;实现各种小程序&#xff0c;不再限制Flash里面已经下载的程序&#xff0c;就跟手机安装APP差不多&#xff0c;所以在H7-TOOL里面被广泛使用&#xff…

矩阵系统源码搭建,oem贴牌,技术指导

一、技术选型与整合 多种技术的融合 矩阵系统通常需要整合多种技术&#xff0c;包括前端技术、后端技术、数据库技术、服务器技术等。选择合适的技术栈并确保它们能够良好地协同工作是一个挑战。例如&#xff0c;前端可能使用 React 或 Vue.js&#xff0c;后端可能使用 Java Sp…

解决新版Android studio不能连接手机的问题

我要说的是一个特例&#xff0c;装了22年的版本AS可以正常连接手机&#xff0c;装了23年以后新版本&#xff0c;AS不能正常连接手机了&#xff0c;但是在CMD控制台可以正常的执行adb命令&#xff0c;并且CMD和AS都是指向D:\android_sdk\platform-tools\adb.exe 一、 为什么会出…

消息队列面试题——第二篇

1. rocketmq、rabbitmq、kafka的区别 架构设计和消息模型 特性rocketmqrabbitmqkafka消息模型基于主题和消费组&#xff0c;支持发布/订阅和点对点两种模型基于队列模型&#xff0c;支持发布/订阅和点对点两种模型基于分区的主题模型&#xff0c;主要用于日志流式处理和高吞吐…