我有一个场景:
ViewA extends
ViewB,覆盖onMeasure()
和调用setMeasuredDimension()
。ViewA 将其宽度设置为,10dp
而 ViewB 将其宽度设置为20dp
。现在,如果我super.getMeasuredWidth()
在末尾从 ViewB调用onMeasure()
以获取 ViewA 的宽度,我会得到20dp
. 原因很明显,当 ViewA 完成自我测量时, ViewB 调用setMeasuredDimension()
又覆盖旧值。
现在显而易见的解决方案是覆盖相关方法。我的问题是,在 custom中覆盖setMeasuredDimension()
or是一种好习惯。getMeasuredWidth()
getMeasuredHeight()
View