问题描述
我使用了分页 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 (将#修改为@)