列表全家桶之刷新、加载更多、悬浮、左滑删除

2,161 阅读1分钟
原文链接: blog.csdn.net

需求

直播入口

这里写图片描述

功能点

  • 下拉刷新历史数据(这里自定义了refresh header,颠球,射门一气呵成~~)
  • 上拉加载更多比赛
  • 时间头悬浮
  • 两个“今天”的定位锚点
  • 内部相关的业务模型采用MVP构建
    算是对Android-architecture之MVC、MVP、MVVM、Data-Binding中的MVP进一步的升级,抽取出了BasePresenter、BaseView、MVPBaseActivity、MVPBaseFragment,并通过使用弱引用预防可能发生的内存泄露问题
    这里就不做赘述,后续有时间会整理一下(基于MVP模型构建多接口,多嵌套复杂数据类型,多视图的的多交互模型)

我的预约

这里写图片描述

功能点

  • 相对于直播入口少了些相关交互功能
  • 增加了左滑删除取消预约的功能
  • 还有一个隐藏功能,就是多页面的比赛预约同步处理,这里采用EventBus事件总线库进行组件间的通信,然后根据通知做相应的业务处理

实战

控件原型搭建

秉着不重复造轮子的宗旨,使用了如下著名的开源控件

  • 悬浮头置顶功能
    StickyListHeaders
    An android library for section headers that stick to the top
    github.com/emilsjoland…
  • 下拉刷新 上拉加载更多
    SwipeToLoadLayout
    A reusable pull-to-refresh and pull-to-loadmore widget
    github.com/Aspsine/Swi…
  • 左滑删除见代码中的SwipeLayout,暂时找不到来源了

最终的效果图

这个是在StickyListHeaders的基础上,整合了SwipeToLoadLayout和SwipeLayout

注意: 基于项目需求对部分开源控件做了相应的调整

这里写图片描述

源码下载

CSDN下载地址
GitHub地址