主要借助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占位符,用于替換和動態(tài)更新,相應的參數必須使用相同的字符串被@Path進行注釋
@Query,@QueryMap:查詢參數,用于GET查詢,需要注意的是@QueryMap可以約定是否需要encode
demo中我對請求API也做了緩存處理,只要加載過后不管是客戶端網絡斷開或者服務器異常導致連接不上,都會先展示本地緩存數據,不會給用戶呈現出空白頁面。這里也包括我自己實現的具有下拉刷新、上拉加載更多功能的recycleview的adapter,該adapter功能很強大,有興趣的也可以看源碼。
好了我們說正題,其實要想實現上下翻頁,每次只能翻一頁的效果很簡單,簡單到只需要一句代碼就ok。

如有興趣了解的話,可以fork我的代碼,https://github.com/hessionpi/recyclepager.git