06 2020 档案
摘要:Flutter中的自定义控件其实和Android中的很类似,都有组合控件、自绘控件。
组合控件就是将通用的控件封装起来,其内部由多个小控件组合起来实现的,比如说公用的title栏,其实和我们平时写页面的时候没什么区别。
自绘控件就是继承RenderObjectWidget,然后通过提供给我们的Paint和Canves进行布局和绘制。今天就写一下组合控件实现的思路和具体做法。
阅读全文
摘要:Flutter给我们提供了很多而且很好用的内置动画,这些动画仅仅需要简单的几行代码就可以实现一些不错的效果,Flutter的动画分为补间动画和基于物理的动画,基于物理的动画我们先不说。
补间动画很简单,Android里面也有补间动画,就是给UI设置初始的状态和结束状态,经过我们定义的一段时间,系统去帮助我们实现开始到结束的过渡变化,这就是补间动画。
今天我们要看的Flutter的内置动画就是补间动画,根据Flutter提供的动画组件,我们去设置初始、结尾的状态,并且定义一下这个变化过程所需要的时间,再经过系统的处理(其实就是setState())来达到动画的效果。
接下来我们会写一下常用的内置动画组件,并且提供一下动画效果的gif,方便大家更直观的去理解。
阅读全文
摘要:如需转载,请注明出处:Flutter学习笔记(37)--动画曲线Curves 效果
阅读全文
摘要:通知的NotificationListener和我们之前写的事件的Listener一样,都是功能性的组件,而且也都是从子节点顺着widget树向上冒泡,不同的是,事件的Listener不可以被终止,但是通知的NotificationListener是可以被终止的。
是否终止根据NotificationListener的返回值来决定。
说一下我个人的理解:
通知Notification的发送是通过disPatch进行分发的,就好像Android里面的事件分发,当NotificationListener监听到了通知事件,这时候会走到其onNotification回调中,根据回调中的返回值类型(true还是false)来决定是否还继续向父亲节点发送通知。
返回true就是继续分发,返回false就是终止分发,返回false就意味着上层节点的NotificationListener就不会接收到通知事件了。
阅读全文
摘要:在Android我们经常会使用到EventBus来进行通信,常用到的场景就是不同的页面来传递数据,Flutter中也可以通过EventBus来进行不同页面间的数据传递。
EventBus就是一条事件订阅总线,有事件的订阅者、事件的发布者。
demo就是模拟了一下页面间的数据传递,页面A跳转到页面B,从页面B返回到页面A的时候,通过EventBus传递数据给页面A。
阅读全文
摘要:这篇随笔主要记录的学习内容是GestureDetector手势识别,内容包括识别单击、双击、长按、组件拖拽和缩放处理。
阅读全文
摘要:在Android原生的开发中,对于事件的处理,我们都知道事件分为down、move、up事件,对于ViewGroup有事件分发、拦截和消费处理,对于View有分发和消费处理,在Flutter中也是一样,事件分为down、move、up事件。
在Flutter中对事件的监听是通过Listener来监听原始触摸事件,Listener的构造方法如下:
阅读全文
摘要:大家都知道,子线程不能操作UI控件,在我们Android的日常开发中,经常会遇到网络请求数据通过线程间通信,将数据发送到UI线程中去更新UI,在Flutter中是如何处理异步更新UI的呢?
今天我们介绍一下FutureBuilder。
阅读全文