有问题在分页 3 中显示错误适配器

问题描述

我使用了分页 3 。当第一页出现连接错误不显示重试适配器。 但是当得到错误并且页面为 2 或更高时,会显示错误

binding.list.adapter = adapter.withLoadStateHeaderAndFooter(
            header = PlaceLoadStateAdapter(this),footer = PlaceLoadStateAdapter(this)
        )

和我的适配器:

class PlaceLoadStateAdapter(
    private val onclick: RetryOnClick
) : LoadStateAdapter<NetworkStateItemViewHolder>() {
    override fun onBindViewHolder(holder: NetworkStateItemViewHolder,loadState: LoadState) {
        holder.bindTo(loadState)
    }

    override fun onCreateViewHolder(
        parent: ViewGroup,loadState: LoadState
    ): NetworkStateItemViewHolder {
        return NetworkStateItemViewHolder(
            NetworkStateItembinding.bind(
                LayoutInflater.from(parent.context).inflate(
                    R.layout.network_state_item,parent,false
                )
            ),onclick
        )
    }
}

和我的页面列表适配器:


internal class Placelistadapter :
    PagingDataAdapter<PlaceView,PlaceViewHolder>(PLACE_COMParaTOR) {


    override fun onBindViewHolder(holder: PlaceViewHolder,position: Int) {
        holder.bind(getItem(position))
    }

    override fun onCreateViewHolder(parent: ViewGroup,viewType: Int): PlaceViewHolder {
        return PlaceViewHolder(
            PlaceItembinding.inflate(
                LayoutInflater.from(parent.context),false
            )
        )
    }

    companion object {
        private val PLACE_COMParaTOR = object : DiffUtil.ItemCallback<PlaceView>() {
            override fun areItemsTheSame(oldItem: PlaceView,newItem: PlaceView): Boolean =
                oldItem.name == newItem.name


            override fun areContentsTheSame(oldItem: PlaceView,newItem: PlaceView): Boolean =
                oldItem.name == newItem.name
        }
    }
}

internal class PlaceViewHolder(
    private val binding: PlaceItembinding
) : RecyclerView.ViewHolder(binding.root) {
    fun bind(place: PlaceView?) {
        place?.let {
            binding.executeAfter {
                location = place
            }
        }
    }
}

I get error but do not show error adapter ?! because this is first page !

I get error but do show error adapter ?! because this is not first page !

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)