Hello,我想问我是否可以在我的3个循环视图中添加每个循环视图hase接口,以优化我的代码--我试图为3循环视图添加一个适配器,因为您可以在下面看到我的代码,但是我发现我自己被这个适配器困住了,有谁知道如何添加自定义适配器来适应3循环视图呢?谢谢,
类CustomAdapter(私有val上下文:上下文):CustomAdapter{私有val上下文: Context =CustomAdapter
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
}发布于 2020-12-12 20:20:21
我建议您不要这样做,而是使用接受布局id的基类并使用它初始化您的公共适配器。
open class AdapterItem(val layoutId: Int)
data class Corpus(val id: Int): AdapterItem(id)然后插入适配器,比如CustomAdapter<AdapterItem>(...)。
在适配器中,重写getView
@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)
}
}https://stackoverflow.com/questions/65268532
复制相似问题