android - 如何在 Recycler View 中插入 ProgressBar 以加载更多项目?

标签 android android-layout android-recyclerview

我在每次 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/

相关文章:

java - 另一个 Activity 中的单选按钮仍然为空?

android - Jetpack compose - 在文本后面绘制背景

android - 是否有 Android Material Design 的默认高度集合?

java - 无法在 recyclerview 上设置适配器,错误 - 无法解析 'setAdapter'

Android Robolectric Click RecyclerView Item

Android - 具有多个位图的Imageview

java - 包含图像和文本的 ListView 内存不足异常

java - android recyclerview 不显示项目

android - 如何从一侧禁用抽屉布局?

java - Android - 实现类似 Instagram 的编辑文本框