gpt4 book ai didi

android - 在 ConcatAdapter Android 中设置不同适配器之间的边距/填充

转载 作者:行者123 更新时间:2023-12-04 17:19:29 27 4
gpt4 key购买 nike

是否可以在 ConcatAdapter 中的不同适配器之间设置空格(边距/填充) ?我只有一个简单的代码示例,如下所示,但根据设计,我必须在不同的适配器(不是一个适配器中的支架项目)之间准确地添加边距。实现这一目标的最佳方法是什么?

val firstAdapter: FirstAdapter = …
val secondAdapter: SecondAdapter = …
val thirdAdapter: ThirdAdapter = …
val concatAdapter = ConcatAdapter(firstAdapter, secondAdapter, thirdAdapter)

recyclerView.adapter = concatAdapter

ConcatAdapter

最佳答案

我设法做了这样的事情:

class EmptySpaceAdapter(private val context: Context, private val height: Int) : RecyclerView.Adapter<BaseViewHolder<*>>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder<*> {
val view = View(context)
view.layoutParams = ViewGroup.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, height)
return EmptySpaceViewHolder(view)
}

override fun getItemCount() = 1

class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)

override fun onBindViewHolder(holder: BaseViewHolder<*>, position: Int) {
when (holder) {
is EmptySpaceViewHolder -> holder.bind(true, position)
else -> throw IllegalArgumentException("No view holder to show this data, did you forgot to add it to the onBindViewHolder?")
}
}

inner class EmptySpaceViewHolder(itemView: View) : BaseViewHolder<Boolean>(itemView) {
override fun bind(item: Boolean, position: Int) {
Timber.d("onBind empty space")
}
}
}

ViewHolder:

abstract class BaseViewHolder<T>(itemView: View) : RecyclerView.ViewHolder(itemView) {
abstract fun bind(item: T, position: Int)
}

关于android - 在 ConcatAdapter Android 中设置不同适配器之间的边距/填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67120921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com