AndroidRecycleviewMultipleViewTypes在Kotlin中不起作用
创始人
2024-10-09 18:01:46
0

在Kotlin中使用多个视图类型的步骤与Java类似,需要按照以下方式更改代码:

1.如果您使用的是Kotlin Android扩展库,则应使用标准的findViewById方法在代码中引用视图。

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
    return when(viewType) {
        TYPE_ONE -> {
            val view = LayoutInflater.from(parent.context).inflate(R.layout.item_type_one, parent, false)
            ViewHolderOne(view)
        }
        TYPE_TWO -> {
            val view = LayoutInflater.from(parent.context).inflate(R.layout.item_type_two, parent, false)
            ViewHolderTwo(view)
        }
        else -> throw IllegalArgumentException("Invalid view type")
    }
}

2.在您的适配器类中声明getViewType方法,并在其中检查传递给onCreateViewHolder方法的视图类型,并为每个视图类型返回相应的整数值。

override fun getItemViewType(position: Int): Int {
    return when(items[position]) {
        is TypeOne -> TYPE_ONE
        is TypeTwo -> TYPE_TWO
        else -> throw IllegalArgumentException("Invalid type of data $position")
    }
}

3.在您的ViewHolder类中声明每个视图类型的视图引用,并在构造函数中将其初始化。

class ViewHolderOne(itemView: View) : RecyclerView.ViewHolder(itemView) {
    val textView: TextView = itemView.findViewById(R.id.text_view_title)
    val imageView: ImageView = itemView.findViewById(R.id.image_view)
}

class ViewHolderTwo(itemView: View) : RecyclerView.ViewHolder(itemView) {
    val textView: TextView = itemView.findViewById(R.id.text_view_description)
    val switch: Switch = itemView.findViewById(R.id.switch_view)
}

这些简单的更改应该使您能够在Kotlin中成功使用多个视图类型。

相关内容

热门资讯

今天下午!红龙poker辅助平... 今天下午!红龙poker辅助平台,We poker辅助器下载(透视)关于教程(真实有挂)-哔哩哔哩1...
截至目前!新星游辅助软件试用版... 截至目前!新星游辅助软件试用版,拱趴大菠萝辅助神器,举措教程(有挂助手)-哔哩哔哩1、新星游辅助软件...
今年以来!aapoker怎么拿... 今年以来!aapoker怎么拿好牌,wepoker私人局透视方法(透视)开挂教程(有挂分享)-哔哩哔...
于此同时!丽水都来脚本辅助,a... 于此同时!丽水都来脚本辅助,aapoker能控制牌吗,手段教程(了解有挂)-哔哩哔哩1、每一步都需要...
透视最新!wepoker一直输... 透视最新!wepoker一直输的号能继续打吗,wepoker免费脚本弱密码(透视)必备教程(真的有挂...
来临!wepoker透视器免费... 您好,微乐内蒙古自建房脚本免费下载这款游戏可以开挂的,确实是有挂的,需要了解加去威信【4852750...
今年以来!wepoker透视脚... 今年以来!wepoker透视脚本安卓,wepoker插件功能辅助器(透视)专业教程(有人有挂)-哔哩...
一直以来!免费雀神挂件怎么安装... 一直以来!免费雀神挂件怎么安装,新九哥脚本下载,教程书教程(发现有挂)-哔哩哔哩1、用户打开应用后不...
不少玩家反映!线上德州的辅助器... 不少玩家反映!线上德州的辅助器是什么,wepoker轻量版透视系统(透视)必备教程(竟然有挂)-哔哩...
围绕透视问题!友间十三道有什么... 围绕透视问题!友间十三道有什么窍门,微乐小程序辅助开发,指南教程(有挂教学)-哔哩哔哩1、进入到友间...