View的getMeasuredWidth/Height和getWidth/Height的区别

在我们去了解Android视图绘制的原理的时候,往往会看到这两个获取视图宽高的方法,那两者到底有什么不同?其不同可以从下面两点来理解:

1.定义概念不同:前者指是View视图实际的宽高(包括被隐藏的部分);后者指的是视图显示的宽高。

2.赋值时机不同:前者在View视图执行onMeasure后被赋值;后者是在视图执行了onLayout后被赋值。若在Activity的onCreate中取值,会发现其值一直为0。

注:在一些极端的情况下,系统可能需要多次测量才能确定视图最终的宽高,在这种情况下,在onMeasure方法中得到的视图从测量宽度/高度可能是不准确的。

一个比较好的习惯是在视图的onLayout方法中获取视图的measureWidth/height或width/height。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容