对于布局一开始只知道根据自己的需要从五大布局中组合出自己所需的界面,但是以前并没有仔细去想过xml布局内部的排列方式。
对于xml布局各种view和viewGroup来说,其放置的顺序对于布局很有影响的。个人推测是布局xml文件的加载是按照在文件中的顺序进行加载的。
先看一个错误信息
错误信息是没有找到textView2这个View。由于确定textView1的位置需要知道textView2的位置,也就是说系统在确定textView1的位置时还没有将textView2的位置确定下来。
一个view绘制到屏幕上显示出来是需要经历三个过程,也就是onMeasure(测量view的大小)、onLayout(对view摆放)、onDraw(绘制)这三个方法。
接下在看看这三个方法经历的流程
布局
其中TextView1和TextView2继承自TextView,分别实现这三个方法
接下来看看log的输出
从log中很容易发现onLayout和onDraw方法都是按照所写的顺序进行的
不解的是为啥onMeasure方法为啥会调用这么多次 =-=,希望能能有大神告知。
总结
和生活联系起来,将布局和刷墙做一下对比或许会更好理解。