Android环境中如何使用Jetpack- Paging?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司于2013年成立,公司以成都做网站、成都网站制作、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户上千余家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。Google 推出 Jetpack 组件化已经有相当一段时间了。各种组件也层出不穷。
Jetpack 的东西也不少,
今天就搞一下这个 Paging
Paging的出现,就是用作列表的分页加载。其实现在已经有非常多成熟高效的开源列表加载控件了,比如:Smartrefreshlayout等。但Google推出的,必然有它的有点,当然也有它的局限性。
先说优点吧,Paging的使用,需要配合ViewModle,LiveData等控件,数据的请求感知并绑定页面的生命周期,避免了内存泄漏。还需要绑定DataSource和DataSource的Factory,能无痕加载更多数据,一定程度上提高用户体验。
主要流程是:
1:自定义 PositionalDataSource,里面的功能是进行数据分页请求。
2:自定义 DataSource.Factory,把 PositionalDataSource 绑定 LiveData
3:Activity 自定义 ViewModel,把 PositionalDataSource 和 Factory 绑定,让 ViewModel 感知数据的变化
4:ViewModel感知数据的变更,并更新 PagedListAdapter 的 submitList。
最先看看导入那些依赖:
implementation "androidx.paging:paging-runtime:3.0.0-alpha04" implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation "android.arch.lifecycle:extensions:1.1.1"