onMeasure的职责是什么?
2022-01-24 本文已影响0人
GoLearning轻松学
大家都知道,measure的职责就是用来度量的,我要测量UI的大小,既然是用来测量的,那它测量的意义是什么?测量的价值在哪里?
举个例子,xml,每个activity都有xml,xml是做什么用的?
xml定义了我们UI的一个布局,我们的布局是由xml来进行的,这里面每一个view都有自己的宽和高,表示宽和高的有什么办法?
wrap_content,match_parent,还有比如说100dp,有三种模式,在wrap_content你怎么知道你的UI占多宽,占多高,占比是多少?,match_parent还好,和父亲一样大,那wrap_content呢?你怎么知道你最终展示的是要多少dp?所以onMeasure的母的就是用来将xml里面相关的定义的宽高这些信息,把它转为一个已知道的数值的过程。wrap_content:我看看我的孩子需要多宽就多宽;match_parent:我看看父亲又多宽我就多宽。所以这都是一个不确定的数,所以这时候通过度量,我要把它变成一个能够用于布局的能够用来layout的,能够布局的参数,这时候我需要把它转变,所以measure的时候度量的时候处理,也是因为这个原因,所以measure永远都会在onLayout之前执行。