Kotlin Jetpack Paging3 和Flow结合使用注意点

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点

在用DataBinding时要注意DataBinding访问的是静态方法

在kotlin中就要用companion object和@JvmStatic

class ImageViewBindingAdapter {
   
   
    //里面的BindingAdapter方法必须是静态方法,否则会编译会报错
    //DataBinding调用必须是静态方法
    companion object {
   
   
        @JvmStatic
        @BindingAdapter("image")
        fun setImage(imageView:ImageView, url: String){
   
   
            if (!TextUtils.isEmpty(url)){
   
   
                //加载网络图片
            }else{
   
   
                imageView.setBackgroundColor(Color.GRAY)
            }
        }
    }
}

paging3分页数据错乱的问题

在计算paging的prevKey和nextKey,也就是上一页,下一页的时候,需要考虑PagingConfig中的initialLoadSize参数

fun loadMovie(): Flow<PagingData<Movie>> {
   
   
    return Pager(
        config = PagingConfig(
            pageSize = 8,
            //第一次加载的数量,16也就是2页,默认是3*pageSize
            initialLoadSize = 16
        ),
        pagingSourceFactory = {
   
   MoviePagingSource()}
    ).flow
}



class MoviePa
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值