Kotlin Recyclerview多形态条目

class MainAdapter(var context:Context,var list:List<String>): RecyclerView.Adapter<RecyclerView.ViewHolder>() {

    class OneViewHolder(itemview:View):RecyclerView.ViewHolder(itemview){
        var username:TextView=itemview.orderone_pushtime
    }

    class TwoViewHolder(itemview:View):RecyclerView.ViewHolder(itemview){
        var username:TextView=itemview.ordertwo_stage
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
        if (viewType==100){
            val inflate = LayoutInflater.from(context).inflate(R.layout.cleanorderone_adapter_layout, parent, false)
            return OneViewHolder(inflate)
        }else{
            val inflate = LayoutInflater.from(context).inflate(R.layout.cleanordertwo_adapter_layout,parent,false)
            return TwoViewHolder(inflate)
        }
    }

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        val itemViewType = getItemViewType(position)
        if (itemViewType==100){
            (holder as OneViewHolder).username.text="我是第一种布局"
        }else{
            (holder as TwoViewHolder).username.text="我是第二种布局"
        }
    }

    override fun getItemCount(): Int {
        return list.size
    }

    override fun getItemViewType(position: Int): Int {
        if (list.get(position).equals("李四")){
            return 100
        }else{
            return 200
        }
    }

}

比较清晰的例子

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值