美文网首页
解决标签下高度无效

解决标签下高度无效

作者: ZZombiee | 来源:发表于2018-07-04 11:45 被阅读0次

起因

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

背景

自定义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);
    }

相关文章

网友评论

      本文标题:解决标签下高度无效

      本文链接:https://www.haomeiwen.com/subject/iukeuftx.html