解决自定义View 设置 layout_width,layout_height为wrap_content时还是充满父类代码如下
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int widthmode=MeasureSpec.getMode(widthMeasureSpec); int widthsize=MeasureSpec.getSize(widthMeasureSpec); int heightMode=MeasureSpec.getMode(heightMeasureSpec); int heightsize=MeasureSpec.getSize(heightMeasureSpec); if (widthmode==MeasureSpec.AT_MOST&&heightMode==MeasureSpec.AT_MOST){ setMeasuredDimension(yourwidth,yourheight);//设置当宽高为wrap_content时默认宽高 }else if (widthmode==MeasureSpec.AT_MOST){ setMeasuredDimension(yourwidth,heightsize); }else if(heightMode==MeasureSpec.AT_MOST){ setMeasuredDimension(widthsize,yourheight); }else { setMeasuredDimension(widthsize,heightsize); } }