Android 自定义view 的绘制时机 问题

Android 自定义view 很多的开发者都用过,自定义view主要的是三个方法 onmeasure onlayout ondraw  

先要测量子view的大小 然后会在layout中将view布置到相应的位置上去

根据官方的说法 自定义的view 会在需要的时候绘制 , 那么问题来了 什么时候是需要的时候?

比如 我在自定义了一个view  很简单 就是在linearlayout中动态添加四个textview 然后我在fragment中使用自己定义的这个view 我还要在自定义的view中设置一个状态 在view绘制完成之后 根据我传入的状态值 来给textview 添加不同的字体大小和颜色 

那么问题来了 我应该在上面时候调用 这个setState方法 来设置状态 也就是说必须要在自定义的view 绘制完成之后 不然系统一定会抛出空指针异常

在oncreateview()中通过findbyid 找到自定义的view之后 直接设置 这个值可以吗?有兴趣的同学可以试一下 百分百空指针!

那么问题来了

自定义的view在被引用时 会在什么时候调用?

答案就是 在onResume方法中!

也就是 findbyid 并没有真正的去执行 onmeasure 等方法 因为按照官方的说法是 会在需要的时候绘制!

这个需要的时候 就是当view被显示出来的时候 这个时机对应的就是onResume()方法

以上就是今天要写的内容!下班走人!

发布了56 篇原创文章 · 获赞 3 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/haoxuezhe1988/article/details/46349619