微软公布 Flutter 可折叠设备支持新进展


微软方面发布了关于支持用 Flutter 开发可折叠设备的更新公告。此前,他们曾向用户展示了在 Flutter Framework 和 Engine 上打开的 PR。目前,Engine PR 已合并;最初的 Framework PR 则被拆分成更小的 PR,其中一些也已被合并。

图:Flutter foldable PR progress

MediaQuery 现在具有 Display Features

Display Features 是可以被硬件功能阻碍的显示部分。Surface Duo 上的铰链就是这样一个 display feature。

MediaQuery PR 现已合并,这意味着如果你在本地 Flutter 设置中切换到 master channel,就可以访问一个名为displayFeatures的属性。一些设备可以有多个 display features,而不仅仅是一个,因此这个新属性是一个列表。这是列表中项目的结构:

class DisplayFeature {
final Rect bounds;
final DisplayFeatureType type;
final DisplayFeatureState state; 
}

更多详情可查看官方文档。

如果你发现你的代码总是在过滤 display features 列表以获得铰链,可以在你的代码中使用此扩展方法:

/// Extension method that helps with working with the hinge specifically.
extension MediaQueryHinge on MediaQueryData {
DisplayFeature? get hinge {
for (final DisplayFeature e in displayFeatures) {
if (e.type == DisplayFeatureType.hinge)
return e;
}
return null;
}
}

DisplayFeatureSubScreen 也被合并

当你只想在 Surface Duo 的一个屏幕上显示内容时(也就是显示对话框时的情况),现在可以选择使用DisplayFeatureSubScreen小部件。这个小部件主要用于 modal routes,并在“对话框和弹出窗口支持”PR 中大量使用。从这个意义上说,它是完整对话支持的垫脚石。如果你的应用程序中有自定义的 modal routes,你可能需要考虑使用此小部件 wrapping 它们。

class _MyRoute<T> extends PopupRoute<T> {
@override
Widget buildPage(...) {
return DisplayFeatureSubScreen(
child: _myPageLayout(),
anchorPoint: Offset.infinite, 
);
}
}

Surface Duo Experience 的高级软件工程师 Andrei Diaconu 称,现下尚有一些贡献未合并,但情况已经比最初提出这些更改时要简单得多。“那时你必须配置一个自定义的 Flutter Engine,现在事情变得简单多了。”

此外,微软还为可折叠 Flutter 添加了一些新示例,展示了可折叠设备的设计模式。 

详情可查看官方博客。


相關推薦

2023-03-15

ive V1两款板卡。同时,在PLCT 与龙蜥社区RISC-V SIG组的全力支持下,仓库软件包以源码为单位完成6511个软件包适配。 此次对算能SG2042服务器板卡的适配工作也是在stage1 的基础上完成的。deepin for RISC-V 架构的SG2042板卡的体验镜像

2023-08-19

Flutter 3.13 现已发布,并包含 Dart 3.1。自上次发布以来的三个月时间内,此版本共合并了 724 个 PR。一些更新亮点包括: Engine 对 Impeller(新图形渲染器)进行了多项改进,并为可折叠设备添加了新的引擎 API。 Impeller iOS 性能改

2023-04-01

本;L2企业版基于L1源社区版本加固,提供企业级的技术支持及服务,可用于真实业务场景,是稳定可靠的发行版本;L3社区版基于L2企业版进一步优化,是代码完全开源、生态全面开放的发行版本。 早在2010年,腾讯就已经推

2022-09-16

稳定版也已发布,帮助开发者在创新中更得心应手。 Flutter 产品经理樊舟颖也提到新发布的 Flutter 3.3 专注于完善和性能改进,还增加了一系列新功能以优化开发体验。 与 Flutter 应用设计工作室 Gskinner 合作推出

2022-09-01

Flutter 3.3 现已发布,此版本专注于完善和性能改进,以强化三个月前发布的 Flutter 3 中所提供的功能。自 Flutter 3 发布以来,Flutter 已经合并了 5,687 个 PR。此版本通过几个新组件和一些错误修复扩展了对不断发展的 Material 3 规范

2022-10-29

到 GNOME 44。 一年前多之前,Ubuntu 母公司 Canonical 曾宣布 Flutter 将成为未来创建 Ubuntu 桌面和移动应用程序的默认选择,还推出了使用 Flutter 创建的全新 Ubuntu 桌面安装器 (Ubuntu Desktop Installer)。 现在,经过接近两年的开发,期待

2023-05-25

备作为 target Arm64 即将推出其他解决方案,例如 GNU GCC、Flutter & Dart、PyTorch、GIMP 让 Windows 11 开发者都能成为 AI 开发者 去年在 Build 大会上,微软宣布了一种新的开发模式 Hybrid Loop,可以跨 Azure 和客户端设备实现混合 AI

2023-01-10

在 22.04 LTS 和 22.10 的 Mutter 包中提供自己的动态三重缓冲支持补丁, Debian 也一直携带 Ubuntu 的动态三重缓冲补丁,以便在必要时强制提升 GPU 性能和渲染速度。 据外媒 Phoronix 介绍,本周 G​​NOME 的动态三重缓冲功能上

2022-12-09

具体效果到底如何,为用户释放了多少计算资源呢?如今微软就公布了他们所统计到的最新数据。 微软自 Edge 105 以来就为浏览器加入了标签页休眠功能,当设备的内存占用接近极限时,就会自动休眠资源占用高的不活跃标签页

2022-05-12

谷歌宣布推出  Flutter 3。Flutter 3 完成了谷歌从以移动为中心到多平台框架的路线图,提供了 macOS 和 Linux 桌面应用程序支持,以及对 Firebase 集成的改进、新的生产力和性能特性,并支持 Apple Silicon。 公告指出,Flutter 3 是谷歌

2023-11-18

与之前的传言相印证,微软宣布计划在 Windows 10 版本 22H2 中添加 AI 助手 Copilot。Copilot 将包含在 Windows 10 家庭版和专业版中。该更新的发布日期尚未公布,预计在不久的将来发布。 在一份新闻稿中,微软表示在向 Windows 11 用户

2023-01-04

Ubuntu 开发一套新的安装程序。该安装程序将会充分利用 Flutter、Curtin(旨在快速安装 Ubuntu) 和 Subiquity(Ubuntu Server 安装程序和设置工具) 等技术的优势。 之所以要开发一套全新的安装程序,这其中最主要的原因还是现有技术

2023-02-11

微软在 .NET 平台上提供了对 3 种编程语言的支持 —— C#、F# 和 Visual Basic。近日它公布了针对每种语言的最新支持策略。总的来说,微软依然致力于全面支持上述三种编程语言,重点是 C# 和 F#,他们会优化这两门语言的向后兼容

2022-08-24

微软方面近日公布了他们发现的有关 ChromeOS 漏洞的技术细节。公告指出,该公司在 ChromeOS 组件中发现了一个可以远程触发的内存损坏漏洞,允许攻击者执行拒绝服务 (DoS) 攻击,或者在极端情况下执行远程代码执行 (RCE)。 微软