8月 172020
 

本文同样适用于高度相关的对应函数

一、几个函数

1. getWidth()

View的实际宽度

2. getMeasuredWidth()

是用setMeasureDimension设置的宽度,这个并不能作为最终的View的宽度来使用,只是在onMeasure的时候用户计算的宽度,只能在这个函数里使用?

3. getMeasuredWidthAndState()

和getMeasuredWidth()类似,但是返回的值包括measuredWidth和MEASURED_SIZE_MASK或者MEASURED_STATE_TOO_SMALL的标志位。

4. getMinimumWidth()

应该是在布局设计时,设置的minWidth属性对应的值或者使用函数setMinimumWidth动态设置的值

5. getSuggestedMinimumWidth()

如果View设置了背景,则取mMinWidth和背景的最小宽度中比较大的一个值。

6. 去除padding后的实际宽度

如果需要考虑padding参数,则去除padding后的实际内容宽度为:

getWidth() – getPaddingLeft – getPaddingRight

二、其他注意事项

1. 在onMeasure函数中不能使用getWidth()和getHeight()函数,此时这两个值都是0

2. MeasureSpec,三种度量规格:

  • UNSPECIFIED – 未指定
  • EXACTLY – 固定尺寸
  • AT_MOST – 最大值

 

打赏
 Posted by on 2020-08-17

Sorry, the comment form is closed at this time.