欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

getMeasuredWidth, getWidth 有什么区别?

程序员文章站 2022-03-28 16:12:29
原始网页直通车getMeasuredWidth 返回的是测量后的宽度,这个宽度是在 setMeasuredDimension 方法被调用后刷新的。( measure 方法最终会调用 setMeasuredDimension 方法)getWidth 返回的是 layout 出来的宽度,在 View 代码中返回的是 mRight - mLeft ,这两个变量是在 setFrame 方法被调用后赋值的。( layout 方法中会调用 setFrame )也就是说, getMeasuredWidth 返...

原始网页直通车


getMeasuredWidth 返回的是测量后的宽度,这个宽度是在 setMeasuredDimension 方法被调用后刷新的。( measure 方法最终会调用 setMeasuredDimension 方法)


getWidth 返回的是 layout 出来的宽度,在 View 代码中返回的是 mRight - mLeft ,这两个变量是在 setFrame 方法被调用后赋值的。( layout 方法中会调用 setFrame


也就是说, getMeasuredWidth 返回值的大小,取决于 setMeasuredDimension ,而 getWidth ,则取决于 layout


在大多数情况下,这两个方法返回的大小都是一样的。

但是在下面这样的情况下就不一样了:

在自定义的 ViewGroup 中,你在 XML 中对 子View 写死了宽度,但是这个 ViewGroup 的排版是固定的一行两个(左右各一个,宽度相同),那么这个 子View 的宽度,就会被强制设置成屏幕的一半,而不是你在 XML 中所设置的宽度。

本文地址:https://blog.csdn.net/qq_26810645/article/details/107598186