getMeasuredWidth, getWidth 有什么区别?
程序员文章站
2022-07-02 09:16:31
原始网页直通车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
推荐阅读
-
Focusky动画演示大师中不可见帧和可见帧有什么区别?
-
apple watch运动版和标准版有什么区别 apple watch运动版和标准版区别介绍
-
Foxmail会话模式是什么?会话模式与相关邮件模式有什么区别?
-
Foxmail会话模式是什么?会话模式与相关邮件模式有什么区别?
-
ABBYY FineReader简体中文版和多语言专业版有什么区别?
-
3dsmax显示单位比例与系统有什么区别?
-
手机淘宝和电脑淘宝有什么区别(揭晓两种不同处)
-
creo4.0两种框选选取方法有什么区别?
-
小米盒子2要不要越狱?小米盒子2越狱和不越狱有什么区别?
-
Thinkpad X240S 与X230S 有什么区别?