当前位置: 代码迷 >> 综合 >> 自定义view支持wrap_content
  详细解决方案

自定义view支持wrap_content

热度:23   发布时间:2024-01-20 09:44:17.0

问题:在自定义view时,如果直接继承view或者viewgroup的控件,如果不在onMeasure中对wrap_content做处理,

需要重写onMeasure方法,具体如下:

protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec){super.onMeasure(widthMeasureSpec,heightMeasureSpec);int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);int widthSpecSize = MaeasureSpec.getSize(widthMeasureSpec);int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);int heightSpecSize = MaeasureSpec.getSize(heightMeasureSpec);if(widthSpecMode  == MeasureSpec.AT_MOST && heightSpecMode == MeasureSpec.AT_MOST){setMeasureedDimension(mWidth,mHeight);}else if((widthSpecMode  == MeasureSpec.AT_MOST){setMeasureedDimension(mWidth,heihgtMeasuerSize);}else if(heightSpecMode == MeasureSpec.AT_MOST){setMeasureedDimension(widthMeasureSize, mHeihgt);}}

其中,mWidth,mHeight为我们给view指定的一个默认的内部宽、高。

  相关解决方案