解决标签下高度无效

起因

开启开发者模式里的过渡绘制以后,发现界面上封装的组件有冗余优化的空间

背景

自定义View继承了一个ViewGroup,在XML文件写的布局,根节点从RelativeLayout(LinearLayout,FrameLayout同理)改成了merge,并添加了parentTag为RelativeLayout来达到减少一级嵌套

造成的结果

这个自定义View你不知道他的父级组件是谁,同时指定merge的高度也无用,因此在初始化的时候getLayoutParams会报空

处理方案

重写onMeasure,直接设置mode和size,注意!!写在super.onMeasure()的前面
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { heightMeasureSpec=MeasureSpec.makeMeasureSpec(WidgetUtil.auto_height_px(ivBack.getContext(), getResources().getDimension(R.dimen.p45)), MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

你可能感兴趣的:(性能优化,布局,自定义view)