首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Paging在RecyclerView中的应用,有这一篇就够了

    这是因为,它会将数据统一封装成一个PagedList对象,而adapter持有该对象,一切数据的更新与变动都是通过PagedList来触发。...使用DataSource.Factory来获取Room中的数据 使用LiveData来观察PagedList 使用PagedListAdapter来与数据进行绑定与更新 2.1 DataSource.Factory...基于PageKeyedDataSource实现网络请求 实现DataSource.Factory 使用LiveData来观察PagedList 使用PagedListAdapter来与数据进行绑定与更...(dataSource) return dataSource } } 嗯,代码就是这么简单,这一步也就完成了,接下来要做的是将pagedList进行LiveData封装。...3.3 Repository & ViewModel 这里与Database不同的是,并没有直接在ViewModel中通过DataSource.Factory来获取pagedList,而是进一步使用

    1.6K20

    Android Architecture Paging Library详解 | Google IO大会上的最新发布

    从图中可以看出,Paging是围绕PagedList为中心的,遵循数据驱动的思想。 >>>> DataSource DataSource是PagedList的数据源类。...可以看出,DataSource不是真正的数据源,而是负责从数据源加载数据,承担了PagedList与数据源之间的桥梁。...>>>> PagedList PagedList从DataSource中获取数据,通过PagedList.Config 可以配置一次加载的数量以及预加载的数量,它也为RecyclerView.Adapter...当创建LiveDataPagedList>时候,LiveData会新建一个线程从DataSource中加载数据(触发loadInitial()),DataSource加载到数据会更新PagedList...userDao是model对象,可以从数据库取到User返回DataSource.Factory对象,我们将DataSource.Factory传给LivePagedListBuilder,并配置PagedList

    1.8K20

    Paging在RecyclerView中的应用,有这一篇就够了

    这是因为,它会将数据统一封装成一个PagedList对象,而adapter持有该对象,一切数据的更新与变动都是通过PagedList来触发。...使用DataSource.Factory来获取Room中的数据 使用LiveData来观察PagedList 使用PagedListAdapter来与数据进行绑定与更新 2.1 DataSource.Factory...基于PageKeyedDataSource实现网络请求 实现DataSource.Factory 使用LiveData来观察PagedList 使用PagedListAdapter来与数据进行绑定与更...(dataSource) return dataSource } } 嗯,代码就是这么简单,这一步也就完成了,接下来要做的是将pagedList进行LiveData封装。...3.3 Repository & ViewModel 这里与Database不同的是,并没有直接在ViewModel中通过DataSource.Factory来获取pagedList,而是进一步使用Repository

    1.2K50

    带你彻底了解Android Jetpack组件的Paging库

    首先,我们按照 列表分页加载 这个行为进行一个基本的划分,分为 2 个部分, 数据 和 UI, paging 就是按照这个来进行划分的 数据 数据部分 paging 包括 PagedList 一个继承了...AbstractList 的 List 子类, 包括了数据源获取的数据 DataSource 数据源的概念,分别提供了 PageKeyedDataSource、ItemKeyedDataSource、...我们可以在 2 个部分的真正对接处作为切入点进行分析,查看 PagedList.Builder#build() 的源码: return PagedList.create( mDataSource...mConfig.enablePlaceholders, mMainThreadExecutor, mReceiver); 这里以 PageKeyedDataSource 为例, 其他的 DataSource...这种模式,业务的编写者,可以把 UI 部分的代码模板化, 只需要关心业务逻辑,并且把业务逻辑中的数据获取写在 DataSource 中,使分页加载的操作解耦程度更高。 — — — END — — —

    1.9K20

    Android 架构组件 - 让天下没有难做的 App

    Paging 将分页逻辑拆解为三部分: 数据源 DataSource 数据块 PagedList 数据展示 PagedListAdapter DataSource 的数据来源于后端服务或者本地数据库,...上图表达了数据的流向,如果从 UI 层往回看,页面展示的数据存储在 PagedList 中,PagedList 只是 DataSource 的数据块(chunk),当 PagedList 需要更多数据时...,DataSource 就会给更多,当 DataSource 一无所有时便会触发 BoundaryCallback 获取更多数据,直到数据全部展示完毕。...Repository 拿到 Dao 的 DataSource.Factory 之后,调用它的 toLiveData 方法并传入 PagedList.Config,然后生成一个分页的 LiveDataPagedList...,而且独立于 Android SDK 向下兼容,AAC 使我们更加聚焦产品,专注于解决问题,而不是花太多的时间重复造轮子。

    1.6K20

    livedatabus详解,阿里是如何用他来做淘宝架构的?

    Paging 将分页逻辑拆解为三部分: 数据源 DataSource 数据块 PagedList 数据展示 PagedListAdapter DataSource 的数据来源于后端服务或者本地数据库,并且用三个子类来表示三种分页模式...上图表达了数据的流向,如果从 UI 层往回看,页面展示的数据存储在 PagedList 中,PagedList 只是 DataSource 的数据块(chunk),当 PagedList 需要更多数据时...,DataSource 就会给更多,当 DataSource 一无所有时便会触发BoundaryCallback获取更多数据,直到数据全部展示完毕。...LivePagedListBuilder 会将PagedList包装成LiveDataPagedList>给到下游,它在整个数据交互链路中的位置 Repository 拿到 Dao 的 DataSource.Factory...,而且独立于 Android SDK 向下兼容,AAC 使我们更加聚焦产品,专注于解决问题,而不是花太多的时间重复造轮子。

    1.4K30

    Spring Boot2(四):使用Spring Boot实现多数据源过程

    使配置信息加载到类中,再注入到SqlSessionFactoryBean org.apache.ibatis.session.Configuration configuration = new...// 使配置信息加载到类中,再注入到SqlSessionFactoryBean org.apache.ibatis.session.Configuration configuration...Mybatis的配置信息如下 /** * 试application.yml中的mybatis.configuration配置生效,如果不主动配置,由于@Order配置顺序不同,讲导致配置不能及时生效 * 使配置信息加载到类中...org.apache.ibatis.session.Configuration(); } 其中prefix,在主库和从库中的id是一样的,必须保持不同,否则idea就会提示报错Duplicate prefix 导致只有主库可以执行Mybatis的配置,从库无效...getResources("classpath:mapper/master/*.xml")); return bean.getObject(); } 这块验证只有主库有效,从库的驼峰方法解析无效

    1.8K30
    领券