美文网首页
【Tips】recycleview加载指定比例长宽的Item布局

【Tips】recycleview加载指定比例长宽的Item布局

作者: 最爱平角裤 | 来源:发表于2016-12-22 16:02 被阅读275次

recycle加载item的时候有时候会要求item的长宽成一定比例

  • 比如当LinearLayoutManager时,通常宽是match_parent,高就要我们自己指定。我们可以让高和宽成一定比例。
  • GridLayoutManager的时候可能要是正方形或是指定长宽比例的矩形。设置列数后,宽度确定,长久可以按照比例来自适应。

主要通过重写RelativeLayout

public class SquareItem extends RelativeLayout {
    public SquareItem(Context context) {
        super(context);
    }

    public SquareItem(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public SquareItem(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        setMeasuredDimension(getDefaultSize(0, widthMeasureSpec),
                getDefaultSize(0, heightMeasureSpec));
        int childWidthSize = getMeasuredWidth();
        // 高度和宽度一样

        widthMeasureSpec = MeasureSpec.makeMeasureSpec(
                childWidthSize, MeasureSpec.EXACTLY);
        
        heightMeasureSpec = childWidthSize/6*5;  //设定高是宽的比例
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
}

相关文章

网友评论

      本文标题:【Tips】recycleview加载指定比例长宽的Item布局

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