原型模式-下拉刷新的全局设置

本文出自Zone的博客,如需转载请标明出处,尊重原创谢谢 博客地址:https://luhaoaimama1.github.io/2017/04/04/Refresh/

目的

全局替换刷新头部

头部可拔插:需要应用策略模式(组合与接口的方式set get); 全局替换:就是原型模式

设置一个全局头部,那么每次使用的下拉刷新 都是全局头部的深拷贝对象。当然可以随意生成想要拷贝的特性;

范例

头部接口

public interface IHeaderView {
    中间省略.....
    /**
     * 全局更换头的配置
     * 主要是为了复制头部对象,复制想要复制的属性
     * 注意:返回null时候,默认就是新浪头了
     */
    IHeaderView clone_();
}

全局设置

       WaveHead waveHead=new WaveHead();
        waveHead.setResourceId(R.drawable.aaaaaaaaaaaab);
        Config.build()
                .setHeader(waveHead)
                .setFooter(new MeterialFooter())
                .setResistance(new Damping2Head8per())
                .writeLog(true)
                .perform();

实践项目:

https://github.com/luhaoaimama1/ZRefreshLayout

欢迎Star 自恋的宣传一下 (*>∀<)ノ))★

特点与功能实现

  • [x] 支持添加下拉刷新与上拉加载
  • [x] 支持所有的View:ImageView,FrameLayout,ListView, GridView, ScrollView, WebView...
  • [x] 全局配置(头部配置都在这里,所以没有xml属性~),与独立更改
  • [x] 自动刷新 延时刷新(如果刷新完毕有动画的话 需要用到延时刷新 ,延时demo)
  • [x] 头部是否固定
  • [x] 刷新出发位置
  • [x] 下拉位置映射,既resistance阻力
  • [x] 因为是继承FrameLayout,可以添加多个child。(我没有控制必须一个,感觉更灵活吧)