【发布时间】:2023-03-03 10:18:01
【问题描述】:
我想让一个项目始终出现在RecyclerView 的顶部。我正在从Firestore 获取数据并将它们显示在RecyclerView 中。我想要的是一个出现在列表顶部的项目,然后显示从Firestore 获取的项目。我该怎么做?
以下是我的适配器。
open class CategoryListAdapter(private val context: Context, private var list: ArrayList<Categories>)
: RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var onClickListener: OnClickListener? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return MyViewHolder(
BottomsheetCategoryListLayoutBinding.inflate(
LayoutInflater.from(
parent.context
), parent, false
)
)
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val model = list[position]
if (holder is MyViewHolder) {
GlideLoader(context).loadPicture(model.category_image, holder.binding.ivCategoryImage)
holder.binding.tvCategoryName.text=model.category_name
}
holder.itemView.setOnClickListener {
if (onClickListener != null) {
onClickListener!!.onClick(position, model)
}
}
}
override fun getItemCount(): Int {
return list.size
}
fun setOnClickListener(onClickListener: OnClickListener) {
this.onClickListener = onClickListener
}
interface OnClickListener{
fun onClick(position: Int, category: Categories)
}
private class MyViewHolder(val binding: BottomsheetCategoryListLayoutBinding) : RecyclerView.ViewHolder(binding.root)
}
【问题讨论】:
-
适配器中有多种视图类型是可能的。你可以看看这个blog.mindorks.com/recyclerview-multiple-view-types-in-android
标签: android kotlin android-recyclerview