Flutter框架分析(五)-Widget,Element,RenderObject树

1. 前言

在本系列文章的前面三篇文章中,已经分别介绍Flutter的三种核心元素:WidgetElement,和RenderObject。并介绍了它们之间的关系。在这篇文章中,将在前面文章的基础上,对Flutter中非常出名的概念“WidgetElementRenderObject树”进行剖析,以此加深读者对Flutter Framework的理解。

2. Widget,Element,RenderObject树的概念和作用

学习Flutter的时候经常会遇到一个概念:WidgetElementRenderObject树。那什么是WidgetElementRenderObject树呢?Flutter中的WidgetElementRenderObject树指的是:Widget Tree, Element Tree, RenderObject Tree。从前面几篇文章可以知道,它们的作用分别如下:

  • Widget Tree
    Widget Tree是整个UI界面的配置,Flutter开发者通过Widget Tree告诉Framework想要绘制的UI界面是什么样的,这棵树是我们主要打交道的对象。
  • Element Tree
    Element Tree是通过Widget Tree生成的,其主要作用是维护UI元素的树形结构,并将WidgetRenderObject关联到树上。
  • RenderObject Tree
    RenderObject Tree也是通过Widget Tree生成的,其主要作用是负责界面的绘制和布局,是属于底层系统,Flutter开发者一般不需要直接操作该树。
    为了加深对这WidgetElementRenderObject树的理解,下面将使用一个例子进行讲解。

3. Widget,Element,RenderObject树示例

示例代码如下:

class TreeTest extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Center(
        child: Text("tree test", textDirection: TextDirection.ltr)
    );
  }
}

该示例很简单,在页面中间显示一个Text,文案为tree test。其运

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值