1. 程式人生 > 其它 >Android動態設定RecyclerView中Item的間距(使用ItemDecoration)

Android動態設定RecyclerView中Item的間距(使用ItemDecoration)

技術標籤:kotlinAndroid基礎

動態設定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) }