微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 ConcatAdapter Android 中设置不同适配器之间的边距/填充

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

Measure 1 = 
VAR CurrentID = SELECTEDVALUE ( rjap[ID] )
VAR CurrentName = SELECTEDVALUE ( rjap[M Name] )
VAR RowsWithSameID =
    FILTER ( 
        ALLSELECTED ( rjap ),rjap[ID] = CurrentID
    )
VAR Result =
    FILTER (
        RowsWithSameID,LEFT ( rjap[M Name],3 ) = "Ann"
            || LEFT ( rjap[M Name],1 ) = "B"
    )
RETURN
    IF ( COUNTROWS ( Result ) >= 2,"A,B",CurrentName )

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)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。