Android环境中如何使用喷气背包——分页?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
谷歌推出Jetpack组件化已经有相当一段时间了。各种组件也层出不穷。
,,,,Jetpack的东西也不少,
,,,,实现“androidx.paging: paging-runtime: 3.0.0-alpha04" 实现& # 39;androidx.recyclerview: recyclerview: 1.1.0 # 39; 实现& # 39;com.squareup.retrofit2:改造:2.9.0& # 39; 实现“android.arch.lifecycle:扩展:1.1.1"
【1】先看活动代码:,
类MainActivity: AppCompatActivity () { 覆盖乐趣>类MyPagedListAdapter延伸PagedListAdapter{ 私有静态DiffUtil.ItemCallback DIFF_CALLBACK=新的DiffUtil.ItemCallback () { @Override 公共布尔areItemsTheSame (MyDataBean oldConcert, MyDataBean newConcert) {//比较两个条目数据是否一样的,可以简单用Bean的hashCode来对比 返回oldConcert.hashCode ()==newConcert.hashCode (); } @Override 公共布尔areContentsTheSame (MyDataBean oldConcert, MyDataBean newConcert) {//写法基本上都这样写死即可 返回oldConcert.equals (newConcert); } }; 公共MyPagedListAdapter () {//通过构造方法设置DiffUtil.ItemCallback 超级(DIFF_CALLBACK); } @NonNull @Override 公共MyViewHolder>类MyViewHolder (val itemV:查看):RecyclerView.ViewHolder (itemV) { 乐趣bindData(数据:MyDataBean) { itemV.findViewById (R.id.tvNum)。文本=data.position.toString () 如果(数据)。位置% 2==0){ itemV.findViewById (R.id.tvNum) .setBackgroundColor (itemV.context.resources.getColor (R.color.colorAccent)) 其他}{ itemV.findViewById (R.id.tvNum) .setBackgroundColor (itemV.context.resources.getColor (R.color.colorPrimaryDark)) } } }
MyDataBean:
数据类MyDataBean (val位置:Int)
,【3】看数据源代码:
PositionalDataSource,里面的功能是进行数据分页请求。
需要实现两个方法:
<强> loadInitial() 强>:第一次打开页面,需要回调此方法来获取数据
<强> loadRange(): 强>,当有了初始化数据之后,滑动的时候如果需要加载数据的话,会调用此方法。
类一个:PositionalDataSource() {/* * *第一次打开页面,需要回调此方法来获取数据 * */覆盖乐趣loadInitial (params: LoadInitialParams,回调:LoadInitialCallback Android环境中如何使用喷气背包——分页