主要借助RecycleView和PagerSnapHelper来实现上下翻页的效果,先上效果图:
demo使用了MVP的架构,网络访问使用了Retrofit2.0+Rxjava实现,非常感谢网友 @peakchao,提供的免费开放api接口
请求美图API:https://www.apiopen.top/meituApi?page=1
这里简单介绍下retrofit2.0,retrofit2.0是在okhttp基础上做了封装,项目当中用到的注解
@GET 使用get请求
@POSt 使用post请求
@Path URL占位符,用于替换和动态更新,相应的参数必须使用相同的字符串被@Path进行注释
@Query,@QueryMap:查询参数,用于GET查询,需要注意的是@QueryMap可以约定是否需要encode
demo中我对请求API也做了缓存处理,只要加载过后不管是客户端网络断开或者服务器异常导致连接不上,都会先展示本地缓存数据,不会给用户呈现出空白页面。这里也包括我自己实现的具有下拉刷新、上拉加载更多功能的recycleview的adapter,该adapter功能很强大,有兴趣的也可以看源码。
好了我们说正题,其实要想实现上下翻页,每次只能翻一页的效果很简单,简单到只需要一句代码就ok。
如有兴趣了解的话,可以fork我的代码,https://github.com/hessionpi/recyclepager.git