这是一个让我生气的方法,遇到这个方法的时候,最开始为了省事,就去网上搜了下
不少答案说,只有在onDraw中调用这个方法才可以得到这个View正确的大小,之前的方法只能得到0
我想了想不对啊,onMeasure不是测量View大小的么,它应该可以得到正确的值,用Log试了下
结果如图:
onMeasure最后还是可以得到正确值的,因为这个方法会被调用多次,所以在这里调用getWidth方法不稳定
但是网上说不能,不是侮辱我的眼睛么 !!
俗话说纸上得来终觉浅,欲知此事需躬行,以后网上只信一半。
接着说getWidth方法,API源码:
需要注意的是,这个方法返回的是View所占的px(虚拟像素)值
那我们该在哪里去调用这个getWidth方法呢,答案是onSizeChanged方法,它在onMeasure确定width之后之后才去调用
那如果我们一定要在onMeasure中获得View 的width,可以用getMeasureWidth方法
有问题请留言。。