overridefunonMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { //获取父布局测量size和model val widthSize = MeasureSpec.getSize(widthMeasureSpec) val widthMode = MeasureSpec.getMode(widthMeasureSpec) val heightSize = MeasureSpec.getSize(heightMeasureSpec) val heightMode = MeasureSpec.getMode(heightMeasureSpec) if (childCount != 2) throw RuntimeException("FixedEndLinearLayout must have 2 children.") val wrapChild = getChildAt(0) val fixedChild = getChildAt(1)
//测量 measureChild(fixedChild, widthMeasureSpec, heightMeasureSpec) val fixedParams = fixedChild.layoutParams as MarginLayoutParams
val fixedChildWidth = fixedChild.measuredWidth + fixedParams.leftMargin + fixedParams.rightMargin val fixedChildHeight = fixedChild.measuredHeight + fixedParams.topMargin + fixedParams.bottomMargin