首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为3 recycleViews创建自定义适配器

如何为3 recycleViews创建自定义适配器
EN

Stack Overflow用户
提问于 2020-12-12 18:41:31
回答 1查看 38关注 0票数 0

Hello,我想问我是否可以在我的3个循环视图中添加每个循环视图hase接口,以优化我的代码--我试图为3循环视图添加一个适配器,因为您可以在下面看到我的代码,但是我发现我自己被这个适配器困住了,有谁知道如何添加自定义适配器来适应3循环视图呢?谢谢,

类CustomAdapter(私有val上下文:上下文):CustomAdapter{私有val上下文: Context =CustomAdapter

代码语言:javascript
复制
inner class FolderViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

}

inner class PagesViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

}

inner class CorpusViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

}


override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
    if (viewType == VIEW_TYPE_CORPUS)
        return CorpusViewHolder(
            LayoutInflater.from(parent.context)
                .inflate(R.layout.corpus_item_layout, parent, false)
        )
    if (viewType == VIEW_TYPE_FOLDER)
        return FolderViewHolder(
            LayoutInflater.from(parent.context)
                .inflate(R.layout.folder_item_layout, parent, false)
        )
    return PagesViewHolder(
        LayoutInflater.from(parent.context).inflate(
            R.layout.page_item_layout, parent, false
        )
    )
}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    TODO("Not yet implemented")
}

override fun getItemCount(): Int {
    return 20
}


companion object {
    internal val VIEW_TYPE_CORPUS = 1
    internal val VIEW_TYPE_FOLDER = 2
    internal val VIEW_TYPE_PAGES = 2
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-12 20:20:21

我建议您不要这样做,而是使用接受布局id的基类并使用它初始化您的公共适配器。

代码语言:javascript
复制
open class AdapterItem(val layoutId: Int)
data class Corpus(val id: Int): AdapterItem(id)

然后插入适配器,比如CustomAdapter<AdapterItem>(...)

在适配器中,重写getView

代码语言:javascript
复制
@Override
fun getView(position: Int, convertView: View, parent: ViewGroup): View {
     val item = list[position]
     return if(converView != null){
          convertView
     } else {
          LayoutInflater.from(parent.context).inflate(item.layoutId, parent, false)
     }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65268532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档