Flutter之使用Overlay创建全局Toast并静态调用

Toast在Android上是最常用的提示组件了,它的优势在于静态调用、全局显示,可以在任意你想要的地方调用他而丝毫不影响界面的布局,调用简单程度与Logger的调用不相上下。
然而在Flutter中并没有给我们提供Toast的接口,想要实现Toast的效果有两种途径,一种是接Android/iOS原生工程,第二种是不依托于使用Flutter来实现。
本篇选用第二种方案来实现,接原生代码一方面要求双端开发工作量和门槛都较大,而且不利于以后的样式扩展,二是纯Flutter实现的Toast确实效果非常好,自定义样式也非常的方便。使用Flutter相对于RN来说,Flutter的渲染引擎是非常强大的,基本上能用Flutter实现的效果都不建议接原生,而RN则没有自己的渲染引擎,性能的限制造成RN需要频繁的接入原生模块,这也是我倾心Flutter的原因。

效果图

Flutter之屏幕截图/组件截图

继续更新Flutter系列,本篇记录如何在Flutter中进行截图,在Flutter中万物皆组件,不但高斯模糊是套一层组件,截图也是套一层组件,所以屏幕截图和组件截图其实是一个意思。虽然Flutter的这种嵌套UI很繁琐,但是用习惯了反而会感觉结构很清晰,不用担心布局相关代码的混乱,在FlutterInspector识图下更是一目了然,可以在不翻阅代码的情况下快速理解别人写的布局。
本次用到的组件是RepaintBoundary,效果图:
效果展示

Flutter之在Flutter布局中嵌入原生组件Android篇

之前介绍过在原生工程内嵌入Flutter,以页面形式或者View的形式嵌入都是可以的,最近看Flutter源码发现Flutter还支持在Flutter布局中嵌入原生View,这个特性在文档中还没有介绍,但是确实是一个非常实用的特性,比如困扰已久的地图实现,有了这个特性我们就可以在Flutter布局中嵌入双平台的原生高德地图或百度地图,甚至是相机预览视频通话SDK等。
本篇一个简单的TextView为示例,介绍如何在Flutter工程中嵌入原生组件。
图片预览

Flutter之使用PageView实现图片预览视差效果

继续Flutter系列博客的更新,google在昨天12月14日发布了Flutter的1.0(Stable)版本,不同于google挖的其他坑,Flutter自发布release版本号到第一个stable版本之间也才过了十个月,可见google对Flutter的定位绝不是一个实验性质的框架。
虽然有人说放版本号不要钱,但这最起码也说明了官方的态度,像Facebook的ReactNative,已经陆陆续续更新了三年,目前为止的最新版是0.57,仍旧没有发布1.0,加上其他因素已经有很多开发者放弃了使用ReactNative和相关开源库的维护。
Google在昨天放出的公告上还有更劲爆的消息,Flutter支持桌面应用开发和Web应用开发的框架将会陆续放出来,届时Flutter将真正成为跨APP/桌面/Web的跨平台UI框架,非常值得期待,相关链接放上(梯子自备)。
碎碎念有点多了,本篇记录如何使用PageView组件实现图片预览的视差效果,效果图如下:
效果图

Flutter之实现动态高斯模糊

Flutter火了。Google的Fuchsia操作系统和配套的Flutter开发框架在去年发布了Preview版本,沉寂了一年之后在今年的google大会上又一次被提名,超高的渲染性能和Android/iOS跨平台的特性让它又一次被推向风口浪尖。
最近准备开个Flutter系列博客的更新,以作知识储备。
回到正题,高斯模糊不是什么新奇的特效,原生平台经常见到的,本篇记录如何在Flutter框架下实现动态的高斯模糊。
静态预览 动态预览 列表滚动预览

Android工程内嵌Flutter,跨平台的渐进式解决方案

其实2017年的时候就已经接触Flutter了,但也只是写了个HelloWorld,一方面是Flutter在那时候还只是preview版本,另一方面ReactNative在那时候非常火热,忙于用ReactNative重构项目,错过了入坑Flutter的第一梯队。
在谷歌的2018IO大会上Flutter再一次成为了跨平台方案的焦点,而ReactNative也在随着Airbnb的弃用热度逐渐冷却,其实在写下这篇文章的时候我已经再次入坑了不短的一段时间,Flutter的各种特性也基本上都接触到了,demo项目也写了一些,但致使我迫不及待的写下这篇文章的直接原因是Flutter的这个能力:
Flutter能够无感知的嵌入到Android工程中,不管是从开发者角度还是用户角度,你甚至可以只从一个view开始来让Flutter参与到你的项目中去,接着替换或者开发某一个页面甚至功能,然后你就会对它爱不释手,让你会有用它重构项目和开发新项目的冲动。

  • 用户:毫秒级的加载速度,无论是view还是页面,基本上和原生无异。
  • 开发:只作为一个module引入工程,代码入侵极小,Android工程和Flutter工程互不相干。

Android工程内嵌Flutter

,