Flutter 1.12 最新 hotfix 与 2020 路线计划

大年初三的时候 v1.12.13+hotfix.7 终于发布了,该版本发布后总算把 1.12.13 版本上的几个大坑填完,算是达到“能用”的稳定版本;同时 1 月 30 号官方也发布了 2020 Flutter 最新的路线计划,也算是新的一年“美好”的开始吧。git

1、1.12.13+hotfix.7

v1.12.13+hotfix.7 版本主要在于解决了我比较关心的三个问题,包括: reportFullyDrawn 异常、华为手机上崩溃、光标和键盘输入异常 这几个问题。github

一、华为手机上崩溃

相信这个问题是 1.12 版本国内开发者最头痛的,出现崩溃的华为手机会抛出 Skia 异常的问题:浏览器

Flutter engine crashes on some Android devices due to "Failed to setup Skia Gr context"bash

该问题的 issue 主要集中在 #47804#47164 上,产生缘由主要在于 skia 的兼容绘制上,感谢 yrom 同窗在修复以前提供了以下的临时解决办法,而本次官方则是经过 #48733 回滚了 skia 来完成修复。post

FlutterMain.ensureInitializationComplete(context, new String[]{FlutterShellArgs.ARG_ENABLE_SOFTWARE_RENDERING});

复制代码

Or学习

Intent flutterActivity = ...; // build intent
flutterActivity.put(FlutterShellArgs.ARG_ENABLE_SOFTWARE_RENDERING, true);
startActivity(flutterActivity);
复制代码

二、键盘输入和光标

这类问题上 Flutter 其实跌过好几回跟头,从 PlatformView 的支持时就出现没法输入的问题,还有华为删除输入文本出现崩溃(怎么又是华为?)等等的异常,而此次主要是相似 #46159该问题主要是输入文本时键盘被冻结了,或者输入的内容消除了。测试

此次官方经过 #45698engine/#14053 的 pr 修复了该问题,该问题主要和 TextAffinity 的使用有必定关系, TextAffinity 主要用于设置光标显示在输入文本前面仍是后面,该异常算是“好心办了坏事”致使。ui

6b66d79 这个提交中官方增长了 Track and use fallback TextAffinity for null affinity platform TextSelections.,而这个提交主要是增长了了默认的 _fallbackAffinity 系列的逻辑,官方在本次 hotfix 上将该提交回滚了。google

三、reportFullyDrawn

reportFullyDrawn 主要是 Android 上用提交应用初始化到 reportFullyDrawn 方法被调用的时间,该问题主要是版本兼容判断致使。spa

2、2020 路线计划

从 2020 年 Flutter 公布的 Roadmap 能够看到在于提升稳定性的同时,重点会是在于 Web 与 macOS 上的推动。

在 2019 年 12 月 举行的 Flutter Interact 活动中, Flutter 的对 Web 的支持已发展到了 beta ,因此接下来 Flutter 打算重点推动这项工做,从而使得 Web 与 Android 和 iOS 可以处于平等应用地位。

同时 Flutter 今年也将继续努力,提升 Flutter 构建 macOS 桌面应用的可行性,Flutter 今年的目标是:应该可以 flutter createflutter run 让程序能够在浏览器,macOS,Android,Fuchsia 和 iOS 上正常运行,并支持热重装、插件、测试和发布。

最后官方表示首先会确保 Material Design 的部件库在全部这些平台上都能正常运行,至于 Cupertino 控件在 PC 上的完美支持还不在 2020 的计划以内。

这些计划从官方的 milestones 也能够看到明显的倾向。

资源推荐

相关文章
相关标签/搜索