解决标签下高度无效

2018-07-04  本文已影响0人  ZZombiee

起因

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

背景

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

造成的结果

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

处理方案

重写onMeasure,直接设置mode和size,注意!!写在super.onMeasure()的前面

    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);
    }
上一篇 下一篇

猜你喜欢

热点阅读