美文网首页
getMeasuredWidth()、getWidth()、La

getMeasuredWidth()、getWidth()、La

作者: 果果_Zhen | 来源:发表于2020-07-06 21:55 被阅读0次

一、getMeasuredWidth() 和 getMeasuredHeight()

        以 getMeasuredWidth() 方法为例,源码如图1, 其中mMeasuredWidth 是最近一次调用 measure(width, height) 之后,计算的完整的测量信息。这个值仅应该在 measure 和 layout 期间使用。在 layout 之后应该使用 getWidth() 方法。

图1 getMeasuredWidth()

二、getWidth() 和 getHeight()

        以 getWidth() 为例,源码如下,因此 getWidth() 是在执行 layout 方法时进行赋值的,因此在 onLayout() 中就可以得到 View 的 getWidth() 和 getHeight()

图2 getWidth()

三、LayoutParams 的 width 和 height 

        LayoutParams 的信息是布局里 layout_xxx 设置,因此width 和 height,是这个View想要多宽,多高的信息,可以是MATCH_PARENT = -1, WRAP_CONTENT = -2, 或者精确的值(单位px)

总结:

什么时候可以正确的得到这三种值?

        1、getMeasuredWidth() 和 getMeasuredHeight() 在measure方法调用后可以使用。

        2、getWidth() 和 getHeight() 在layout之后完成后才可以使用。

        3、LayoutParams中的参数是不变的,是 layout_xxx 的值。

相关文章

网友评论

      本文标题:getMeasuredWidth()、getWidth()、La

      本文链接:https://www.haomeiwen.com/subject/bjrwqktx.html