微软公开Flutter可折叠设备支持进展,多项重要功能已与存储库主要分支整合

微软在支持双屏幕可折叠设备的开发已经两年,去年3月的时候,微软发布适用Flutter支持可折叠设备预览,要让开发人员可以使用Flutter在可折叠设备上开发应用程序。

现在微软公开最新的开发进展,之前所打开的框架、引擎和DisplayFeatureSubScreen拉取请求,现在都已经整合进Flutter存储库,同时微软也发布新范例,供开发者尝鲜。

Flutter是目前发展最快速的框架,让开发者可以使用相同的程序代码,构建跨平台的应用程序,由于微软近两年正在进行双屏幕设备开发,而贡献Flutter可折叠设备的支持,正好可改进自家双屏幕可折叠设备Surface Duo的开发体验。

微软提到,可折叠设备有许多类型,可能使用可弯曲或是可卷曲具弹性的显示器,开发者的应用程序可以在具有显示特征下(Display Feature)的显示器中,呈现更大的画面。

所谓的显示特征,指的是在显示器中,可能无法使用或是受到屏蔽的区域,微软在Flutter添加三种显示特征,包括刘海型(Cutout)、合页型(Hinge)以及对折型(Fold)。

显示特征属于显示器的属性,这类信息在Flutter由MediaQuery提供,微软提到,在三种新的显示特征中,刘海型和对折型将较少被使用,因为开发者通常使用Flutter的SafeArea来避开刘海,而且不需要处理折叠的情况,因为显示的内容还是连续的,而在对折型设备上,由于MediaQuery会出现变化,因此小工具也就会自动重建。

目前微软已经将支持可折叠设备的MediaQuery拉取请求,整合到Flutter的程序代码存储库中,这代表用户只要使用主要分支,就可以访问一个名为displayFeatures的属性,部分设备可以拥有多种显示特征,因此该属性会提供一个列表,开发者也能以简单的方式,取得合页型可折叠设备的可用信息。

另外,DisplayFeatureSubScreen功能也已经被整合到Flutter主分支中,开发者提到,当用户想要在Surface Duo这类合页型可折叠设备的其中一个屏幕显示内容时,像是对话窗口,就可以选择使用DisplayFeatureSubScreen小工具。

这项功能是对话窗口和交互窗口(Modal)的基础功能,在对话窗口和自订交互窗口路由拉取请求中被大量使用,现在开发者也可以在主分支中用到DisplayFeatureSubScreen功能。

目前微软在Flutter中提供可折叠设备的支持还未完成,除了正在接受审查的对话窗口和自订交互窗口路由拉取请求,TwoPane工具的拉取请求也已经打开。TwoPane会根据可用空间,决定显示一个或是两个小工具,而这项功能可以让开发者用更简单的方法,来扩展Flutter应用程序设计,同时适用单屏幕和双屏幕,甚至是平板电脑和台式机等更大的屏幕。

开发者可以复制微软的Flutter分叉,即可以使用全部这些新功能,包括使用TwoPane,让新的对话窗口避开合页中间。官方提到,在他们新发布的范例中,展示了针对双屏幕设备的所有设计模式,以及对话窗口和合页角度的一些操作。

开发者也可以通过范例,了解将这些设计模式,扩展到大屏幕的方法,也就是说,开发者能够在桌上计算机执行范例,并借由调整应用程序大小,来查看设计模式在不同场景的表现。

最近发布的Flutter 2.10正式支持了Windows平台,使得Flutter应用程序也可以在Windows上执行,微软现在对Flutter所做的程序代码贡献,能够衔接Flutter应用程序从原本移动设备的小屏幕,到可折叠设备屏幕,甚至是大屏幕的显示体验。