android 升降view,Android View的工作原理(一)

前言

我们知道android的view的3大流程分别是measure,layout和draw过程。在学习这3大流程之前还有一些必须掌握的基本知识。

主干

首先我们就来看一看ViewRoot和DecorView。

View的三大流程都是通过ViewRoot来完成的,ViewRoot对应于ViewRootImpl类。在ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window当中,同时创建ViewRootImpl对象,并将两者相关联。

源码如下:

 
 

root = new ViewRootImpl(view.getContext(),display);

root.setView(view, wparams, panelParentView);

绘制view的三大流程的入口时ViewRoot的performTraversals方法。具体看图体会

1466b48276e5

05a812305244d5ebb171a323a12dc912.jpg

如图所展示的那样,performTraversals会依次调用performMeasure,performLayout和performDraw三个方法。再以measure为例,讲一下其流程,首先performMeasure执行viewgroup的measure方法,measure方法有调用onMeasure方法,而onMeasure方法会对所有的子元素执行measure方法。这样就完成了对整个viewgroup的遍历。

接下来DecorView就简单介绍一下,DecorView是一个FrameLayout,作为顶级View,View层的事件都会先经过DecorView,然后才传递给View。

未完待续~~~~~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值