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

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);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一.常用控件的使用方法 1.TextView match_parent 由父布局来决定当前控件的大小。wrap_c...
    努力生活的西鱼阅读 5,036评论 5 0
  • 第二章 UI 标签(空格分隔): 未分类 疑问 3.5.2,inflate()的第三个参数false是起什么作用?...
    秋山君阅读 4,288评论 1 0
  • RecyclerView Item 布局宽高无效问题探究 前言 这个问题很早之前就碰到过,后来通过google找到...
    TinyMen阅读 3,173评论 0 0
  • RecycleView的使用 RecyclerView是Google在API 21下support.V7包里的控件...
    安卓小生阅读 13,702评论 1 20
  • 章八·清白人 洛里埃先生是一个忙人,这条老街上他的房子最大,白石垒砌的外墙高高耸起,将里外隔成两个世界,而那一扇铁...
    道天生阅读 1,751评论 0 1

友情链接更多精彩内容