Android动态设置RecyclerView中Item的间距(使用ItemDecoration)

动态设置RecyclerView的Item的间距,使其各部分间距相等

在这里插入图片描述

WorkAdapter.kt

class WorkAdapter : BaseQuickAdapter<Work, BaseViewHolder>(R.layout.store_mine_recycler_item) {
    override fun convert(holder: BaseViewHolder, item: Work) {
        val iv = holder.getView<ImageView>(R.id.iv_thumb)
        Glide.with(context)
            .load(item.thumb)
            .centerCrop()
            .placeholder(R.mipmap.store_placeholder)
            .error(R.mipmap.store_placeholder)
            .into(iv)
    }
}

class SpaceItemDecoration(var space: Int) : ItemDecoration() {
    override fun getItemOffsets(
        outRect: Rect,
        view: View,
        parent: RecyclerView,
        state: RecyclerView.State
    ) {
        if (parent.getChildAdapterPosition(view) != 0) outRect.left = space
    }
}

MainActivity

  • binding.rvWorks.addItemDecoration(SpaceItemDecoration(SizeUtils.dp2px(24f)))
    private fun initView() {
        //作品列表
        adapter = WorkAdapter()
        adapter.setOnItemClickListener { _, _, position ->
            val work = adapter.data[position]
            MyWorkPreviewActivity.start(requireContext(), work)
        }
        binding.rvWorks.adapter = adapter
        binding.rvWorks.addItemDecoration(SpaceItemDecoration(SizeUtils.dp2px(24f)))
        binding.rvWorks.layoutManager =
            LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值