首页 > 解决方案 > 使用 AndroidX 的分页示例

问题描述

我尝试将 PagingSample(Google 的 android-architecture-components)重构为 AndroidX(AndroidStudio 3.3.0-alpha11,kotlin_plugin=1.3.0-rc-57)

Gradle 构建完成没有错误。调试给出错误:

app/build/tmp/kapt3/stubs/debug/../pagingsample/CheeseAdapter.java:33:错误:找不到符号私有静态最终androidx.recyclerview.widget.DiffUtil.ItemCallback diffCallback = null;^符号:T 类位置:CheeseAdapter 类

标签: androidkotlin-android-extensions

解决方案


答案很简单:

import android.view.ViewGroup
import androidx.paging.PagedListAdapter
import androidx.recyclerview.widget.DiffUtil

class CheeseAdapter : PagedListAdapter<Cheese, CheeseViewHolder>(/*diffCallback)*/
object : DiffUtil.ItemCallback<Cheese>() {
    override fun areItemsTheSame(oldItem: Cheese, newItem: Cheese): Boolean =
        oldItem.id == newItem.id

    override fun areContentsTheSame(oldItem: Cheese, newItem: Cheese): Boolean =
        oldItem == newItem
}) {

override fun onBindViewHolder(holder: CheeseViewHolder, position: Int) {
    holder.bindTo(getItem(position))
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CheeseViewHolder =
        CheeseViewHolder(parent)

}

推荐阅读