flutter框架学习
文章平均质量分 91
zuoluohust
这个作者很懒,什么都没留下…
展开
-
Flutter框架分析 --EventChannel
1. 前言在文章Flutter框架分析(八)-Platform Channel中,我们分析了EventChannel的原理和结构,并详细讲解了与其相关的一些核心类,例如StreamHandler和MethodCodec等,本文主要讲解使用EventChannel的示例。2. 使用流程EventChannel一般用于事件流的传递,用于将Platform的点击等一系列事件等传递至Platform,仅支持native到Flutter的单向传递,接下来将分析其使用流原创 2021-08-11 15:22:13 · 855 阅读 · 0 评论 -
Flutter框架分析-MethodChannel
1. 前言在文章Flutter框架分析(八)-Platform Channel中,我们分析了MethodChannel的原理和结构,并详细讲解了与其相关的一些核心类,例如MethodCallHandler和MethodCodec等,本文主要讲解使用MethodChannel的示例。2. 使用流程MethodChannel可用于Flutter调用native的方法,也可用于native调用Flutter的方法,所以接下来将分别分析这两种使用流程。2.1 Flutter调原创 2021-08-10 19:39:53 · 309 阅读 · 0 评论 -
Flutter框架分析-BasicMessageChannel
1. 前言在文章Flutter框架分析(八)-Platform Channel中,我们分析了BasicMessageChannel的原理和结构,并详细讲解了与其相关的一些核心类,例如MessageHandler和MessageCodec等,本文主要讲解使用BasicMessageChannel的示例。2. 使用流程BasicMessageChannel可用于Flutter给native发消息,也可用于native给Flutter发消息,所以接下来将分别分析这两种使用流程。2.1原创 2021-08-07 23:39:56 · 1186 阅读 · 0 评论 -
Flutter框架分析(八)-Platform Channel
1. 前言由于Flutter运行于其他平台之上,其不可避免的需要和宿主平台进行通信。那其Flutter和宿主平台是如何进行通信的呢?本文将详细介绍Flutter和宿主平台的通信方式,并从源码的角度剖析通信原理。2. 架构概述Flutter是通过Platform Channel同宿主平台进行通信的。其消息通道结构示意图如下:为了保证界面能够响应及时,消息的传递是异步的。Flutter定义了三种不同类型的Platform Channel,它们分别是:BasicMessageChann原创 2021-08-04 19:32:36 · 363 阅读 · 2 评论 -
Flutter框架分析(七)-relayoutBoundary
1. 前言在Flutter框架分析(四)-RenderObject一文中,我们简单介绍了RenderObject中一个重要成员变量:RelayoutBoundary。下面我们简单回顾下RelayoutBoundary的主要作用。当一个组件的大小被改变时,其parent的大小可能也会被影响,因此需要通知其父节点。如果这样迭代上去,需要通知整棵RenderObject Tree重新布局,必然会影响布局效率。因此,Flutter通过RelayoutBoundary将RenderObject Tree分段,如果原创 2021-07-05 17:26:14 · 551 阅读 · 2 评论 -
Flutter框架分析(六)-Constraint
1. 前言在Flutter框架分析(四)-RenderObject一文中,我们简单介绍了Flutter中RenderObject布局的核心规则,Constraint向下,Size向上,父节点设置本节点的位置。在本文中,我们会对这个规则进行详细解析。2. 布局原则解析RenderObject布局的核心规则的具体解读如下:一个Widget从它的父节点获取Constraint,并将其传递给子节点。该Widget对其子节点进行布局。最终,该节点告诉其父节点它的Size。Flutter Framewo原创 2021-06-29 20:24:45 · 265 阅读 · 2 评论 -
Flutter框架分析(五)-Widget,Element,RenderObject树
1. 前言在本系列文章的前面三篇文章中,已经分别介绍Flutter的三种核心元素:Widget,Element,和RenderObject。并介绍了它们之间的关系。在这篇文章中,将在前面文章的基础上,对Flutter中非常出名的概念“Widget,Element,RenderObject树”进行剖析,以此加深读者对Flutter Framework的理解。2. Widget,Element,RenderObject树的概念和作用学习Flutter的时候经常会遇到一个概念:Widget,Element,原创 2021-06-16 17:33:27 · 312 阅读 · 2 评论 -
Flutter框架分析(四)-RenderObject
1. 前言Flutter中,RenderObject的主要职责是布局和绘制。通过上篇文章介绍的Element Tree,Flutter Framework会生成一棵RenderObject Tree. 其主要功能如下:布局,从RenderBox开始,对RenderObject Tree从上至下进行布局。绘制,通过Canvas对象,RenderObject可以绘制自身以及其在RenderObject Tree中的子节点。点击测试,RenderObject从上至下传递点击事件,并通过其位置和behav原创 2021-06-10 20:32:55 · 571 阅读 · 3 评论 -
Flutter框架分析--InteritedWidget
1 前言在Flutter中,由于其激进式组合(Everything is Widget)的设计理念,多层Widget是很常见的,如何在不同层的Widget之间传递数据,是开发者经常遇到的问题。通常做法是将数据添加到下级Widget的构造函数中。但是如果传递数据的Widget层级相隔较远,那将数据一层层传下来将是个噩梦。因此,Flutter提供了一种在Widget树中自上而下传递数据的方式:InheritedWidget。本文将深入讲解InheritedWidget的原理,并举例说明InheritedWid原创 2021-06-03 19:39:45 · 283 阅读 · 2 评论 -
Flutter框架分析-- Parent Data
1. 前言有时候,RenderObject需要在其子节点中存储一些数据,比如用于布局的一些参数,或者和其他子节点之间的关系。为此,Flutter提供了ParentData,用于存储父节点的一些信息。每个RenderObject都有这个成员变量,该成员在setupParentData方法中初始化。子类如果需要ParentData的某个子类,需要重写该方法,并在该方法中对ParentData进行初始化。2. ParentData分类ParentData可以分为三大类:BoxParentData,Sliv原创 2021-05-23 18:16:24 · 445 阅读 · 1 评论 -
Flutter框架分析(三)-Element
1. 前言上一篇文章讲到,Widget是描述一个UI元素的配置数据,Element才真正代表屏幕显示元素,是某个位置的Widget生成的实例。本篇文章则主要介绍Element的主要功能。通过上篇文章介绍的Widget Tree,Flutter Framework会生成一系列Element,这些Element构成了Element Tree,其主要功能如下:维护这棵Element Tree,根据Widget Tree的变化来更新Element Tree,包括:节点的插入、更新、删除、移动等;将Widg原创 2021-05-02 12:09:22 · 387 阅读 · 2 评论 -
Flutter框架分析(二)-- Widget
1. 前言Widget是开发Flutter应用过程中,接触最多的概念。Flutter的理念是万物皆Widget(Everything is Widget),这是为了实现Flutter的一个设计理念:激进式组合(Aggressive composability)。Widget由一系列的小的Widget组合而成,而这些进行组合的Widget,本身是由更基础的Widget构成。例如,Padding也是一种Widget,而不是Widget中的一个属性。在Flutter中,Widget的定义是:描述一个UI元素的原创 2021-04-26 21:45:42 · 211 阅读 · 0 评论 -
Flutter框架分析(一)--架构总览
Flutter框架分析(一)--架构总览前言Flutter体系架构不同跨平台技术对比小结前言Flutter是Google打造的高性能、跨平台的UI框架。它可以给开发者提供简单、高效的方式来构建和部署跨平台、高性能移动应用;给用户提供漂亮、无平台区分的app体验。Flutter是如何做到这一点的呢?它的框架结构是怎么样的呢?接下来,我将写一系列的文章分析Flutter的框架层,结合源码分析Flutter框架所采用的各种黑科技。本文是这个系列文章的第一篇,主要介绍Flutter框架的总览。Flutter原创 2021-04-07 22:22:42 · 447 阅读 · 0 评论