我在每次 API 调用中获取 50 个项目并将其插入到 RecyclerView
中。当我滚动到末尾时,我在最后一个现有的 ViewHolder
中添加了一个 ProgressBar
并显示它,而不是为 使用单独的
。但是存在一些性能问题。谁能告诉我我的方法是否正确?如果有人能建议我正确的方法,我将不胜感激ViewHolder
>进度条
最佳答案
这是适配器类
class AdapterClass(private var mList: MutableList<Any>?,
var mContext: Context
) : RecyclerView.Adapter< RecyclerView.ViewHolder>() {
private val DATA = 1
private val LOADER = 2
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return if (viewType == DATA) {
val view = LayoutInflater.from(parent.context).inflate(R.layout.view, parent, false)
Items(view)
} else {
val view = LayoutInflater.from(parent.context).inflate(R.layout.list_item_loadmore, parent, false)
ViewHolderLoader(view)
}
}
override fun getItemCount(): Int {
return mList?.size?:0
}
override fun getItemViewType(position: Int): Int {
return when {
mList?.get(position) is DataItem -> DATA
mList?.get(position) is Loader -> LOADER
else -> DATA
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) {
if (holder?.itemViewType == DATA) {
val viewHolder = holder as AdapterClass.Items
val dataItem = mList?.get(position) as DataItem
viewHolder.bindData(dataItem)
}
}
inner class Items(itemView: View?) : RecyclerView.ViewHolder(itemView) {
@SuppressLint("SetTextI18n")
fun bindData(data: DataItem?) {
}
inner class ViewHolderLoader(itemView: View) : RecyclerView.ViewHolder(itemView)
关于android - 如何在 Recycler View 中插入 ProgressBar 以加载更多项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59049228/