美文网首页高级UIAndroid技术知识Android开发经验谈
关于recyclerview 设置item之间的距离

关于recyclerview 设置item之间的距离

作者: Ad大成 | 来源:发表于2020-11-18 11:17 被阅读0次

recyclerview本身有一个ItemDecoration的类 是可以用来自由设置间距的
但是一定要注意的是 不能重复设置 如果重复设置 列表间距会越来越大的哦

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
    private static final String TAG=SpacesItemDecoration.class.getSimpleName();

    private int space;
    private List<ActionCenterBean.DataBean> list;
    private Context context;




    public SpacesItemDecoration(int space, List<ActionCenterBean.DataBean> list, Context context) {
        this.space = space;
        this.list=list;
        this.context=context;

    }

    @Override
    public void getItemOffsets(Rect outRect, View view,
                               RecyclerView parent, RecyclerView.State state) {
          //设置item的上下左右的margin
            outRect.left = space;
            outRect.right = space;
//        outRect.bottom = space;
//设置列表首个item和最后一个item的margin间距
            if (parent.getChildAdapterPosition(view)==0){
                int dimensionPixelSize = context.getResources().getDimensionPixelSize(R.dimen.dp_41);
                outRect.left=dimensionPixelSize;
            }
            if (parent.getChildAdapterPosition(view)==list.size()-1){
                int dimensionPixelSize = context.getResources().getDimensionPixelSize(R.dimen.dp_41);
                outRect.right=dimensionPixelSize;
            }





        // Add top margin only for the first item to avoid double space between items
//        if (parent.getChildPosition(view) == 0)
//            outRect.top = space;
    }
}

初始化

//间距的标识,每次启动或者刷新的时候 只设置一次间距 
      spaceTag++;

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
        linearLayoutManager.setOrientation(RecyclerView.HORIZONTAL);
        home_recycler.setLayoutManager(linearLayoutManager);
        if (spaceTag==1){
            home_recycler.addItemDecoration(new SpacesItemDecoration(getResources().getDimensionPixelOffset(R.dimen.dp_17),data,context));
        }

参考:https://www.jianshu.com/p/e372cec819db

相关文章

网友评论

    本文标题:关于recyclerview 设置item之间的距离

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