美文网首页
【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