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、下载好红龙poker...
wepoke有没有挂!德州ai... wepoke有没有挂!德州ai辅助神器下载(透视)总是是有挂(详细辅助微扑克教程)1、不需要AI权限...
透视游戏!德普之星怎么作弊,w... 透视游戏!德普之星怎么作弊,wepokerplus外挂(详细辅助曝光教程);德普之星怎么作弊辅助器中...
aapoker有外挂!德州aa... 一、aapoker有外挂简介了解软件请加微:136704302aapoker有外挂是一款在线扑克游戏...
透视辅助!wepoker底牌透... 透视辅助!wepoker底牌透视脚本app,德州局怎么透视(详细辅助教你攻略)wepoker底牌透视...
aapoker有挂!德州微扑克... 自定义德州微扑克辅助系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你...
透视好牌!wepoker辅助工... 透视好牌!wepoker辅助工具,wepoker有没有挂(详细辅助曝光教程)1、该软件可以轻松地帮助...
we辅助poker德之星!线上... 一、we辅助poker德之星简介了解软件请加微:136704302we辅助poker德之星是一款在线...
德扑起手牌胜率图!wepoke... 德扑起手牌胜率图!wepoke黑科技(透视)一贯是有挂(详细辅助玩家教你)1、这是跨平台的德扑起手牌...
透视线上!aapoker透视脚... 透视线上!aapoker透视脚本下载,wepoker有机器人吗(详细辅助可靠教程)亲,关键说明,aa...