Skip to content

Latest commit

 

History

History
417 lines (417 loc) · 37.9 KB

UPDATE.md

File metadata and controls

417 lines (417 loc) · 37.9 KB

更新日志

1.7.2.4

修复#136,修正默认配置下特性情况下AppBarLayout拖动问题。

1.7.2.3

修复#136,修正参数传递错误。

1.7.2.2

兼容Android12。

1.7.2.1

修复#130,转移到Maven Central。

1.7.2

转移仓库到JitPack

1.7.1.6.androidx

修复#121

1.7.1.5.androidx

修复#120, 上一个版本未抽出时间全部测试,导致ext-horizontal出现严重错误,如果没有使用横向扩展支持的可以不用升级,如果使用横向扩展支持的请务必升级本版本。

1.7.1.4.androidx(此版本的ext-horizontal包存在严重BUG,请升级版本到1.7.1.5.androidx,实在抱歉)

修复#118, 考虑到很多场景下,使用者可能在视图已从视图树中移除情况下仍触发操作视图,不再手动置空布局管理器。

1.7.1.3.androidx

修复#115,未考虑到触发刷新同步调用结束刷新导致刷新视图无法操作问题。
添加扩展模块 ext-dynamic-rebound, 使用基于物理的动画实现越界回弹,使回弹效果更贴近真实。理论上该扩展模块可直接替换SRL使用,无需修改代码。

1.7.1.2.androidx

VRefreshLayoutManager 添加方法 setHeaderBackgroundColorsetFooterBackgroundColor
添加方法 getLayoutManager 方法。
添加接口 OnCalculateBounceCallback ,用以重载计算越界距离和时间函数,不喜欢本库自带越界回弹效果的话,可使用该接口实现自己的越界计算函数,配合setMinOverScrollDurationsetMaxOverScrollDurationsetFlingBackDurationsetSpringInterpolatorsetSpringBackInterpolator 可以实现几乎所有的越界回弹效果。
添加方法 setOnCalculateBounceCallback
添加方法 setFlingBackDuration

1.7.1.1.androidx

修改 ViewCatcherUtil 类实现, 完善 CoordinatorLayout 各种布局下的适配性。
修改只在纵向模式下才动态搜索 AppBarLayout

1.7.1.androidx

重构布局相关代码,封装出 LayoutManager,已实现默认刷新布局管理器和拉伸布局管理器,支持自定义布局管理器以实现不同需求下的效果。
修改 RefreshCompleteHook类的onHookComplete方法定义,添加immediatelyNoScrolling参数,用以标记是否需要立刻回置到起始位置。
删除方法 getDurationToCloseHeadergetDurationToCloseFooter,该方法原来在MaterialHeader中有使用,修改实现后已不再需要故删除。
修改 AutoRefreshUtil 类实现。
删除接口 OnNestedScrollChangedListener,以及相关方法,起初添加该方法是为了实现自动刷新工具检测内部滚动事件用,实际使用中发现和 OnUIPositionChangedListener接口有较多重合,效率偏低同时由于修改了自动刷新工具已不再需要该接口故而删除。
删除方法 setEnableSmoothRollbackWhenCompletedisEnabledSmoothRollbackWhenCompleted,改为默认开启,原因为刷新或者加载更多完成后,添加数据会导致视图边界变动,如果此时处于触摸中,之前的逻辑是直接让刷新视图回置到起始位置,但会引起和未处于触摸中的回滚起始位置动画体验不一致的感觉,故而统一为刷新完成不管是否触摸中一律不能中断刷新完成回滚动画让刷新视图回滚到起始位置,保持体验一致。
删除方法 setEnableNextPtrAtOnceisEnabledNextPtrAtOnce,由于上一点配置后导致本配置失效故而删除。
添加方法 forceRefreshforceLoadMore,将直接忽略内部状态强制进行刷新,该方法不会触发滚动相关逻辑,只是修改内部状态为刷新态。可用来支撑点击进行重新刷新/加载功能。
删除方法 setHeaderBackgroundColorsetFooterBackgroundColor,封装布局管理器后,背景色填充改为用户在刷新视图层实现。

1.7.0.androidx

修改支持 NestedScrollingParent3NestedScrollingChild3,此版本开始不再更新android.support对应包,只更新androidx包。
移动 SRReflectUtilutil 包下,core 包不再包含兼容低版本的反射代码,如需使用请自行继承SmoothRefreshLayout重写相应函数自行调用SRReflectUtil对应方法进行使用。
重命名 OnLoadMoreScrollCallback 接口为 OnSyncScrollCallback,同时实现滚动到顶自动刷新的同步滚动逻辑。
删除方法 setEnableDynamicEnsureTargetViewisEnabledDynamicEnsureTargetView,改为默认就是动态识别滚动内容视图,不再可配置,如果需要指定滚动内容视图请使用setScrollTargetView
删除方法 setEnableCheckInsideAnotherDirectionViewisEnableCheckInsideAnotherDirectionView,考虑到已动态识别滚动视图,不再浪费效率判断手指按下时是否处于其他方向View中。
删除回调类 OnInsideAnotherDirectionViewCallback 以及其设置方法 setOnInsideAnotherDirectionViewCallback,原因同上。 删除方法 setLoadingMinTime, 没什么用,改由用户控制最小加载时间。
删除方法 mapTheInverseMatrix,使用隐藏的 Android 5.1 以上系统版本的访问浅灰名单级方法 transformPointToViewLocal 进行处理,针对 Android 5.1 以下没有该方法的情况做了兼容处理。
优化动态搜索 AppBarLayout 逻辑,避免无法识别外层嵌套。

1.6.6.8

调整优化刷新视图自定样式效率,在STYLE_SCALE/STYLE_FOLLOW_SCALE/STYLE_FOLLOW_CENTER下不再使用requestLayout进行重布局,考虑到SRL高度固定情况下,直接在内部进行计算,大幅提高布局的效率。
修复#95,感谢@tbxyxs 的反馈。
移除无用attr。

1.6.6.7

添加自动二级刷新功能。

1.6.6.6

修改嵌套滚动Fling消耗问题,感谢@dnwalter 的反馈,后续准备实现NestedScrollingParent3和NestedScrollingChild3接口,提高嵌套滚动下的Fling顺滑度。

1.6.6.5

修复横向刷新,当内部视图为ViewPager时,Fling传递问题。感谢@renzhenfei 的反馈。

1.6.6.4

优化触摸事件处理。

1.6.6.3

修复当SRL高度为自适应同时内部视图高度也为自适应时高度计算有误的问题。感谢@Lalways 的反馈。
修改AppBarUtil实现。

1.6.6.2

修复 setEnableNoMoreData 功能异常。感谢@seemelala 的反馈。

1.6.6.1

修复由于实现 NestedScrollingChild2NestedScrollingParent2 接口所带来的Fling嵌套滚动传递未正常终结引起的短暂点击失效问题。感谢@dahai2070 的反馈。

1.6.6

删除 ViscousFluidInterpolator
整合ext-util包的QuickConfigAppBarUtilcore包中,并重命名为AppBarUtil,内置自动适配逻辑以适应越来越流行的嵌套特性。
重命名类: ext-util包中的 QuickConfigAutoRefreshUtilAutoRefreshUtil
优化布局逻辑,提高效率。
默认插值器修改。

1.6.5

删除状态布局功能。
添加方法:setEnableDynamicEnsureTargetView 方法即动态搜索布局功能,开启后理论上不需要手动指定边界判断视图就能适配某些特殊场景,例如:ViewPager共用一个刷新控件。
修改接口:IRefreshViewCreator 的方法返回参数,避免漏设刷新视图。
添加接口:OnPerformAutoRefreshCallBack 和对应的设置方法:setOnPerformAutoRefreshCallBack
修复isEnabledNoSpringBackWhenNoMoreData第二次不起作用的问题。
添加接口:OnNestedScrollChangedListener和对应的设置方法: addOnNestedScrollChangedListenerremoveOnNestedScrollChangedListener。用以当本视图以及内部的自视图发生滚动时触发监听。
添加接口: OnStatusChangedListener用以监听状态改变。
添加方法: addOnStatusChangedListenerremoveOnStatusChangedListener,用以监听状态改变。
删除方法: equalsOnHookHeaderRefreshCompleteCallbackequalsOnHookFooterRefreshCompleteCallbacksetOverScrollInterpolator
扩展实现: NestedScrollingChild2NestedScrollingParent2 接口,因而Android Support Library版本必须大于26.1.0,以完善Fling。
添加方法: isEnabledPerformFreshWhenFlingsetEnablePerformFreshWhenFling , 默认情况下当正在拖动刷新视图时,如果是向收回刷新视图方向甩动并触发了惯性甩动(Fling),即使松手时的高度大于等于触发刷新高度仍然不会触发刷新,这个时候如果想触发刷新则需要打开本开关。
删除部分反射逻辑,应对Android P。
综合考虑性能和逻辑复杂度后删除了通过ViewTreeObserver来监听滚动逻辑,改用重载computeScroll方法,理论上效率会轻微降低,但复杂度会降低不少。
添加方法: isEnabledOldTouchHandlingsetEnableOldTouchHandling 方法,至此版本开始,支持2种触摸处理方式,一种为老版本的拦截处理(触摸事件只且当刷新视图收回后才由内容视图向下传递),一种为新版本的透传处理(触摸事件将从触发到终止均向下传递,传递时剔除消耗部分,特殊场景下做差值处理)。老版本的处理逻辑由于是拦截传递,必然导致视觉上的割裂感,主要体现在拉出刷新视图再收回视图情况下,当刷新视图回到顶部后缓慢滑动会导致内容视图触发按下效果。新版本由于是差值透传所以不会产生这个问题。使用者可按需进行切换调整。默认使用新版本的处理逻辑。
修改实现: 考虑到越界回弹是iOS和macOS特有,实现上参考iOS的越界回弹效果,重新实现了越界回弹的逻辑,尽量接近iOS和macOS上的效果。
添加方法: setSpringBackInterpolator , 设置回滚时的滚动插值器,setSpringInterpolator , 意思为设置滑出时的滚动插值器。
添加方法: getScrollMode, 用以获取当前滚动的模式,有6个模式,SCROLLER_MODE_NONE 未滚动、SCROLLER_MODE_PRE_FLING 缩回或者拉出刷新视图手势下的滚动模式、SCROLLER_MODE_CALC_FLING 内容视图滚动中计算加速度模式 、SCROLLER_MODE_FLING 越界回弹弹出滚动模式、SCROLLER_MODE_FLING_BACK越界回弹缩回滚动模式、SCROLLER_MODE_SPRING 主动弹出滚动模式、SCROLLER_MODE_SPRING_BACK释放缩回滚动模式。
修改方法: setLifecycleObserveraddLifecycleObserver
添加方法: removeLifecycleObserver
添加方法: getIndicator
删除方法: isInStartPosition
完善部分代码逻辑。
调整越界回弹弹出的最小时间值为100
迁移仓库,由JitPack迁移到JCenter(太蠢了,手残删除了2个包的厂库,导致2个包的引用名有修改)。
修复部分代码逻辑错误。

1.6.4.3

修复MODE_SCALE 模式下的拉伸BUG。

1.6.4.2

修正MODE_SCALE 模式下仍能调用自动刷新的问题。
修正Fling动作某些情况下的BUG。
优化Fling在开启OverScroll情况下的逻辑。

1.6.4.1

修复横向刷新错误设置偏移的问题。
优化MODE_SCALE模式下部分场景,如果内部视图为ScrollView或者NestedScrollView或者HoriztonalScrollView,拉伸对象将为内部视图内的第一个视图,以达到更好的效果。
减少反射逻辑。
新增方法:setAutomaticSpringInterpolator,用来设置自动刷新时的滚动插值器。

1.6.4

删除方法:setEnableHideHeaderView,改用 getHeaderView().getView().setVisibility 进行替代。
删除方法:setEnableHideFooterView,改用 getFooterView().getView().setVisibility 进行替代。
删除方法:isEnabledHideHeaderView,改用 getHeaderView().getView().getVisibility 进行替代。
删除方法:isEnabledHideFooterView,改用 getFooterView().getView().getVisibility 进行替代。
新增方法:getFooterView
新增方法:getHeaderView
删除方法:getDefaultHeader(位于 MaterialSmoothRefreshLayoutClassicSmoothRefreshLayout)。
删除方法:getDefaultFooter(位于 MaterialSmoothRefreshLayoutClassicSmoothRefreshLayout)。
删除类:OverScrollerChecker,合并滚动逻辑到 ScrollerChecker 类中,对滚动逻辑进行整合。
修改方法:setLoadMoreScrollTargetView -> setScrollTargetView
修改方法:getLoadMoreScrollTargetView -> getScrollTargetView
修改Xml属性sr_content实现,支持遍历查找内部所有层级的资源Id。
合并整合横向刷新和纵向刷新触摸事件逻辑。
优化部分代码逻辑。
修正部分参数设置错误。

1.6.3.3

分割合并部分代码逻辑。
拆分 IIndicatorIIndicatorIIndicatorSetter 2个接口,避免非Frame层调用相关setter方法。
删除部分代码逻辑。

1.6.3.2

删除多余部分方法(PS:Fuck JitPack).

1.6.3

重命名Xml属性和部分开放API,使Xml属性命名更规范,同时尽量避免过长API名导致的代码冗余.
修改Xml属性名:style_follow_scale -> style_followScale.
修改Xml属性名:style_follow_pin -> style_followPin.
修改Xml属性名:style_follow_center -> style_followCenter.
修改Xml属性名:sr_resistance_of_footer -> sr_resistanceOfFooter.
修改Xml属性名:sr_resistance_of_header -> sr_resistanceOfHeader.
修改Xml属性名:sr_ratio_of_refresh_height_to_refresh -> sr_ratioToRefresh.
修改Xml属性名:sr_ratio_of_header_height_to_refresh -> sr_ratioOfHeaderToRefresh.
修改Xml属性名:sr_ratio_of_footer_height_to_refresh -> sr_ratioOfFooterToRefresh.
修改Xml属性名:sr_offset_ratio_to_keep_refresh_while_Loading -> sr_ratioToKeep.
修改Xml属性名:sr_offset_ratio_to_keep_header_while_Loading -> sr_ratioToKeepHeader.
修改Xml属性名:sr_offset_ratio_to_keep_footer_while_Loading -> sr_ratioToKeepFooter.
修改Xml属性名:sr_can_move_the_max_ratio_of_refresh_height -> sr_maxMoveRatio.
修改Xml属性名:sr_can_move_the_max_ratio_of_header_height -> sr_maxMoveRatioOfHeader.
修改Xml属性名:sr_can_move_the_max_ratio_of_footer_height -> sr_maxMoveRatioOfFooter.
修改Xml属性名:sr_duration_to_close_of_refresh -> sr_closeDuration.
修改Xml属性名:sr_duration_to_close_of_header -> sr_closeHeaderDuration.
修改Xml属性名:sr_duration_to_close_of_footer -> sr_closeFooterDuration.
修改Xml属性名:sr_duration_of_back_to_keep_refresh_pos -> sr_backToKeepDuration.
修改Xml属性名:sr_duration_of_back_to_keep_header_pos -> sr_backToKeepHeaderDuration.
修改Xml属性名:sr_duration_of_back_to_keep_footer_pos -> sr_backToKeepFooterDuration.
修改Xml属性名:sr_enable_pull_to_refresh -> sr_enablePullToRefresh.
修改Xml属性名:sr_enable_over_scroll -> sr_enableOverScroll.
修改Xml属性名:sr_enable_keep_refresh_view -> sr_enableKeep.
修改Xml属性名:sr_enable_pin_content -> sr_enablePinContent.
修改Xml属性名:sr_enable_refresh -> sr_enableRefresh.
修改Xml属性名:sr_enable_load_more -> sr_enableLoadMore.
修改Xml属性名:sr_empty_layout -> sr_emptyLayout.
修改Xml属性名:sr_error_layout -> sr_errorLayout.
修改Xml属性名:sr_custom_layout -> sr_customLayout.
修改Xml属性名:sr_header_background_color -> sr_headerBackgroundColor.
修改Xml属性名:sr_footer_background_color -> sr_footerBackgroundColor.
修改Xml属性名:sr_enable_two_level_refresh -> sr_enableTwoLevelRefresh.
支持黏贴头部,添加对应Xml属性:sr_stickyHeader和对应的方法 setStickyHeaderResId 用以设置黏贴头部的ResId,当SRL处于移动头部视图时该黏贴头部会跟随Target视图进行移动.
添加Xml属性:sr_backToKeep2Duration 用以设置回滚到保持二级刷新头部处于二级刷新过程中的时长.
添加Xml属性:sr_closeHeader2Duration 用以设置关闭二级刷新头部的时长.
修改方法:setRatioOfRefreshViewHeightToRefresh -> setRatioToRefresh.
修改方法:setRatioOfHeaderHeightToRefresh -> setRatioOfHeaderToRefresh.
修改方法:setRatioOfFooterHeightToRefresh -> setRatioOfFooterToRefresh.
修改方法:setOffsetRatioToKeepRefreshViewWhileLoading -> setRatioToKeep.
修改方法:setOffsetRatioToKeepHeaderWhileLoading -> setRatioToKeepHeader.
修改方法:setOffsetRatioToKeepFooterWhileLoading -> setRatioToKeepFooter.
修改方法:setDurationOfBackToKeepRefreshViewPosition -> setDurationOfBackToKeep.
修改方法:getDurationOfBackToKeepHeaderPosition -> getDurationOfBackToKeepHeader.
修改方法:setDurationOfBackToKeepHeaderPosition -> setDurationOfBackToKeepHeader.
修改方法:getDurationOfBackToKeepFooterPosition -> getDurationOfBackToKeepFooter.
修改方法:setDurationOfBackToKeepFooterPosition -> setDurationOfBackToKeepFooter.
修改方法:setCanMoveTheMaxRatioOfRefreshViewHeight -> setMaxMoveRatio.
修改方法:setCanMoveTheMaxRatioOfHeaderHeight -> setMaxMoveRatioOfHeader.
修改方法:setCanMoveTheMaxRatioOfFooterHeight -> setMaxMoveRatioOfFooter.
修改方法:isEnableCheckFingerInsideAnotherDirectionView -> isEnableCheckInsideAnotherDirectionView.
修改方法:setEnableCheckFingerInsideAnotherDirectionView -> setEnableCheckInsideAnotherDirectionView.
修改方法:isEnabledLoadMoreNoMoreData -> isEnabledNoMoreData.
修改方法:setEnableLoadMoreNoMoreData -> setEnableNoMoreData.
修改方法:isEnabledLoadMoreNoMoreDataNoNeedSpringBack -> isEnabledNoSpringBackWhenNoMoreData.
修改方法:setEnableLoadMoreNoMoreDataNoNeedSpringBack -> setEnableNoSpringBackWhenNoMoreData.
修改方法:isEnabledCanNotInterruptScrollWhenRefreshCompleted -> isEnabledSmoothRollbackWhenCompleted.
修改方法:setEnableCanNotInterruptScrollWhenRefreshCompleted -> setEnableSmoothRollbackWhenCompleted.
修改方法:isEnabledScrollToBottomAutoLoadMore -> isEnabledAutoLoadMore.
修改方法:setEnableScrollToBottomAutoLoadMore -> setEnableAutoLoadMore.
修改方法:isEnabledScrollToTopAutoRefresh -> isEnabledAutoRefresh.
修改方法:setEnableScrollToTopAutoRefresh -> setEnableAutoRefresh.
修改方法:setDurationOfBackToKeepTwoLevelHeaderViewPosition -> setDurationOfBackToKeepTwoLevel.
修改方法:setDurationToCloseTwoLevelHeader -> setDurationToCloseTwoLevel.
修改方法:setRatioOfHeaderHeightToHintTwoLevelRefresh -> setRatioOfHeaderToHintTwoLevel.
修改方法:setRatioOfHeaderHeightToTwoLevelRefresh -> setRatioOfHeaderToTwoLevel.
修改方法:setOffsetRatioToKeepTwoLevelHeaderWhileLoading -> setRatioToKeepTwoLevelHeader.
修改方法:setOnChildNotYetInEdgeCannotMoveHeaderCallBack -> setOnHeaderEdgeDetectCallBack.
修改方法:setOnChildNotYetInEdgeCannotMoveFooterCallBack -> setOnFooterEdgeDetectCallBack.
修改方法:setOnFingerInsideAnotherDirectionViewCallback -> setOnInsideAnotherDirectionViewCallback.
重命名接口: OnChildNotYetInEdgeCannotMoveHeaderCallBack -> OnHeaderEdgeDetectCallBack.
重命名接口: OnChildNotYetInEdgeCannotMoveFooterCallBack -> OnFooterEdgeDetectCallBack.
重命名接口: OnFingerInsideAnotherDirectionViewCallback -> OnInsideAnotherDirectionViewCallback.

1.6.2

支持拉伸内部视图功能,ModeMODE_DEFAULT时为刷新控件用以操作Header/Footer,ModeMODE_SCALE时为拉伸收缩控件用以操作内部视图(PS:竖向靠SmoothRefreshLayout支持/横向开HorizontalSmoothRefreshLayout支持,效果类似小米设置页拉伸效果).
添加了 sr_modemode_defaultmode_scale Xml属性.
将外部可配置的常量和注解整合.
支持只触发刷新动画.

1.6.1.4

修复 setErrorLayoutResId 方法移除了错误的视图问题.
重命名 setEnabledCanNotInterruptScrollWhenRefreshCompletedsetEnableCanNotInterruptScrollWhenRefreshCompleted 方法.
重命名 setEnabledInterceptEventWhileLoadingsetEnableInterceptEventWhileLoading 方法.
添加 setDisableLoadMoreWhenContentNotFullisDisabledLoadMoreWhenContentNotFull 方法,用以控制当内容视图未满屏时禁用加载更多.

1.6.1.3

修复Attr冲突问题.
添加自动刷新辅助工具到 ext-utils 包.
添加了 setEmptyLayoutResIdsetErrorLayoutResIdsetCustomLayoutResId 方法.
添加了 OnFingerDownListener 接口.
修改内部实现,如果TargetView为空将不再抛出异常.

1.6.1.2

修改当刷新完成时,回滚动作是否能被触摸事件打断的逻辑为触发刷新完成(1.6.1.1条件为真实刷新完成才触发逻辑即:内部状态更改为刷新完成触发).
新增 ILifecycleObserver 接口,用以观察视图生命周期,为后续可能的工具预留接口.
新增 ext-utils 包,现阶段添加了快速适配AppBarLayout的工具(QuickConfigAppBarUtil),如视图为 CoordinatorLayout + AppBarLayout + RecyclerView、AbsListView、ScrollView 这类视图结构,现在只需使用本工具,配置少量代码即可完成配置.

1.6.1.1

添加 isEnabledCanNotInterruptScrollWhenRefreshCompletedsetEnabledCanNotInterruptScrollWhenRefreshCompleted 方法,用以控制当刷新完成时,回滚动作是否能被触摸事件打断.
修复Fling的BUG.

1.6.1

修改 IRefreshView 接口定义,当 getCustomHeight 方法返回值大于0时,Srl会以该值作为视图的高度进行后续操作.当值等于-1(MATCH_PARENT)时,Srl会将视图铺满布局.当值等于0时候不做处理以布局自适应.
修改 IRefreshView 接口,统一 indicator 参数均为继承 IIndicator 的泛型 T.
删除 addView相关的final关键字,修改相关实现.
修改 StoreHouseHeader 的绘图问题.
优化手势传递,使甩动手势更自然.
修复刷新视图有Margin时,未正确布局的问题.
修复当刷新视图样式不为 STYLE_DEFAULTSTYLE_FOLLOW_CENTER ,并且当前的移动距离大于Srl的高度时仍改变移动距离的问题.

1.6.0

对现有项目进行分割,考虑到绝大多数都是自定义Header和Footer故拆分Core自带的2种风格Header和Footer到2个包(ext-classic和ext-material),至此Core包不再包含Header和Footer.如果需要可自行依赖.
修改手势传递实现,使效果更自然.
删除 ext-horizontal 包中的 HorizontalMaterialHeaderHorizontalMaterialFooter,将其移动到了demo中.
添加了 flingCompat 方法,用以向下传递Fling动作.
删除 setOverScrollDurationRatio 方法.
修改越界回弹实现,优化效果.
修改关闭Header和关闭Footer刷新功能实现,关闭时会检查是否处于刷新中,如果处于刷新中会重置默认状态.
修改 ClassicHeaderClassicFooter 实现,不再使用XML布局构建,直接使用代码生成布局结构,整合共有属性.

1.5.1.1

修改从Window移除时不再移除Handler内的所有消息.

1.5.1

修复嵌套布局下手势失效问题.
支持刷新视图可见情况下,手势向下传递.即当刷新视图高度未达到触发刷新高度时,手势能将刷新视图隐藏的同时继续传递手势到内容视图.

1.5.0.5

修复未开启越界回弹情况下,手势甩动关闭刷新视图不起作用问题.

1.5.0.3

修复多层嵌套下和多方向布局下事件处理可能的异常.

1.5.0.2

修复嵌套滚动下可能存在的加载更多同步滚动被错误触发问题.
添加 setEnableCompatLoadMoreScroll 方法,用以设置是否开启加载更多同步滚动,默认开启.
添加 getHeaderBackgroundColor 方法,用以获取Header刷新高度区域内的背景色.
添加 setHeaderBackgroundColor 方法,用以设置Header刷新高度区域内的背景色.
添加 sr_header_background_color属性,用以设置Header刷新高度区域内的背景色.
添加 getFooterBackgroundColor 方法,用以获取Footer刷新高度区域内的背景色.
添加 setFooterBackgroundColor 方法,用以设置Footer刷新高度区域内的背景色.
添加 sr_footer_background_color属性,用以设置Footer刷新高度区域内的背景色.
修改方法 setOnChildAlreadyInEdgeCanMoveHeaderCallBacksetOnChildNotYetInEdgeCannotMoveHeaderCallBack ,保持含义和作用都对应原 setOnChildScrollUpCallback 方法.
修改方法 setOnChildAlreadyInEdgeCanMoveFooterCallBacksetOnChildNotYetInEdgeCannotMoveFooterCallBack ,保持含义和作用都对应原 setOnChildScrollDownCallback 方法.
修改接口 OnChildAlreadyInEdgeCanMoveHeaderCallBackOnChildNotYetInEdgeCannotMoveHeaderCallBack,保持含义和作用都对应原 OnChildScrollUpCallback 接口.
修改接口 OnChildAlreadyInEdgeCanMoveFooterCallBackOnChildNotYetInEdgeCannotMoveFooterCallBack,保持含义和作用都对应原 OnChildScrollDownCallback 接口.
修改方法 isChildAlreadyInEdgeCanMoveHeaderisChildNotYetInEdgeCannotMoveHeader,保持含义和作用都对应原 canChildScrollUp 方法.
修改方法 isChildAlreadyInEdgeCanMoveFooterisChildNotYetInEdgeCannotMoveFooter,保持含义和作用都对应原 canChildScrollDown 方法.

1.5.0.1

修复布局Footer时错误的检查了Header的样式.
优化移动刷新视图在 STYLE_FOLLOW_PIN 样式下的效率.

1.5.0

对现有项目进行分割,将二极刷新功能模块放入专门的包(ext-two-level),新添加支持横向刷新模块(ext-horizontal),原有核心模块作为基础模块引入(core).从而削减了库的大小.使用者可以根据具体业务需求依赖扩展模块.
修改方法 canChildScrollUpisChildAlreadyInEdgeCanMoveHeader.
修改方法 canChildScrollDownisChildAlreadyInEdgeCanMoveFooter.
修改方法 setOnChildScrollUpCallbacksetOnChildAlreadyInEdgeCanMoveHeaderCallBack.
修改方法 setOnChildScrollDownCallbacksetOnChildAlreadyInEdgeCanMoveFooterCallBack.
修改接口 OnChildScrollUpCallbackOnChildAlreadyInEdgeCanMoveHeaderCallBack.
修改接口 OnChildScrollDownCallbackOnChildAlreadyInEdgeCanMoveFooterCallBack.
修改接口 OnFingerInsideHorViewCallbackOnFingerInsideAnotherDirectionViewCallback.
修改方法 setOnFingerInsideHorViewCallbacksetOnFingerInsideAnotherDirectionViewCallback.
修改方法 isEnableCheckFingerInsideHorViewisEnableCheckFingerInsideAnotherDirectionView.
修改方法 setEnableCheckFingerInsideHorViewsetEnableCheckFingerInsideAnotherDirectionView.
修改方法 isDisabledWhenHorizontalMoveisDisabledWhenAnotherDirectionMove.
修改方法 setDisableWhenHorizontalMovesetDisableWhenAnotherDirectionMove.
修改方法 checkHorizontalViewUnInterceptedEventcheckAnotherDirectionViewUnInterceptedEvent.
修改方法 updateYPosupdatePos.
修改方法 updateXPosupdateAnotherDirectionPos.
添加方法 createIndicator. 添加方法 setIndicatorOffsetCalculator,用以设置自定义便宜计算器实现更强的阻尼效果.
添加方法 isEnabledLoadMoreNoMoreDataNoNeedSpringBack.
添加方法 setEnableLoadMoreNoMoreDataNoNeedSpringBack,用以开启当无再多数据时是否不再回弹停留在最后移动位置.
修改 IIndicator 接口中的方法 getOffsetYgetOffset.
修改 IIndicator 接口中的方法 getLastPosYgetLastPos.
修改 IIndicator 接口中的方法 getCurrentPosYgetCurrentPos.
修改 IIndicator 接口中的方法 setCurrentPosYsetCurrentPos.
修改 IIndicator 接口中的添加 setOffsetCalculator(IOffsetCalculator calculator) 方法.
修改 IIndicator 接口中的添加 IOffsetCalculator 接口,用以设置自定义便宜计算器实现更强的阻尼效果.
其他内部参数名的修改.

1.4.8.1

修正参数错误.分包前的最后一个版本.

1.4.8

修改 IRefreshView 接口,新增 STYLE_PINSTYLE_FOLLOW_SCALESTYLE_FOLLOW_PINSTYLE_FOLLOW_CENTER 四种新的样式.
STYLE_PIN:如果是Header则会固定在顶部,如果是Footer则会固定在底部.
STYLE_FOLLOW_SCALE:先纵向跟随TargetView移动,当移动的位置大于视图高度就动态改变视图高度.
STYLE_FOLLOW_PIN:先纵向跟随TargetView移动,当移动的位置大于视图高度就固定住.
STYLE_FOLLOW_CENTER:先纵向跟随TargetView移动,当移动的位置大于视图高度就让刷新视图处于中间位置但不改变视图大小.
修改 setEnableHeaderDrawerStylesetEnableFooterDrawerStyle 的实现.新版本需要之前的版本效果需要改变刷新视图的样式为 STYLE_PIN.
添加 IChangeStateAnimatorCreator 接口和 setChangeStateAnimatorCreator 方法.现在可以自定义切换状态动画.
修复 DefaultIndicator 中的参数错误.
强化对同时有横向和纵向滚动视图时的滑动处理.
WaveHeaderWaveSmoothRefreshLayout 从Lib中移除,移动到App中.
精简了部分代码.

1.4.7.3

修复setEnableOverScroll功能部分失效问题, #25.

1.4.7.2

修复RecyclerView未满屏幕情况下Footer滑动问题, #25.

1.4.7.1

修改二级刷新,添加 autoTwoLevelRefreshHint(boolean smoothScroll, int stayDuration, boolean canBeInterrupted)方法,可以设置提示是否能被打断.
修复某些嵌套布局下触摸事件处理没有非常好的工作问题.

1.4.7

修改二级刷新,修复 IIndicator 转换错误.
删除支援Margin特性,提高效率.
修复某些嵌套布局下触摸事件处理没有非常好的工作问题.
重命名了一些内部方法名.

1.4.6.1

修复嵌套布局下,Fling处理逻辑问题导致惯性消失问题.
添加 setOnFingerInsideHorViewCallback 方法.
添加 setEnableCheckFingerInsideHorView 方法.
添加 isEnableCheckFingerInsideHorView 方法.
添加 OnFingerInsideHorViewCallback 回调接口.
以上添加的方法和接口用于检测手指按下时,触摸点是否位于水平滚动视图内.开启 setDisableWhenHorizontalMovesetEnableCheckFingerInsideHorView后,将根据手指按下的触摸点是否位于水平滚动视图内进行触摸事件拦截处理,如果在内部,就拦截横向滑动,如果不在就拦截处理所有滑动事件.

1.4.6

实现即使Header或者Footer中的事务还没完成(例如Header处于刷新中),仍然可以滑动其他刷新视图.原逻辑为如果Header处于刷新中就无法再拉起Footer.
IRefreshView 接口中添加 onPureScrollPositionChanged方法,用于当刷新视图事务未完成,移动其它视图会回调该方法,可以根据具体需求实现该状态下的视图展现.
优化优化回弹效果.
修复某些特殊情况下触摸事件没有很好的处理问题.
合并部分重复逻辑代码.
添加 setSpringInterpolator 方法,用以设置默认的滚动插值器.
添加 setOverScrollInterpolator 方法,用以设置越界回弹时的滚动插值器.

1.4.5

修改二级刷新,修改 TwoLevelSmoothRefreshLayout styleable sr_enable_two_level_pull_to_refreshsr_enable_two_level_refresh.
修改二级刷新,删除 isEnabledTwoLevelPullToRefresh 方法,添加 isDisabledTwoLevelRefresh 方法.
修改二级刷新,删除 setEnableTwoLevelPullToRefresh 方法,添加 isDisabledTwoLevelRefresh 方法.
修改二级刷新,修复 setDurationOfBackToKeepTwoLeveHeaderViewPosition方法名,应为 setDurationOfBackToKeepTwoLevelHeaderViewPosition.
修改二级刷新,添加 autoTwoLevelRefreshHint 相关方法.
修复 WaveTextRefreshView 中动画显示错位问题(7.0系统BUG);
修复部分逻辑错误.

1.4.4.1

修改 onNestedPreScroll方法实现,合并逻辑,提高效率和可读性.
修改 onNestedPreFling 方法实现,提高效率.

1.4.4

优化优化回弹效果.
修复某些情况下 ViewTreeObserverOnScrollChangedListener 没有完全移除问题.
修改 MaterialSmoothRefreshLayout 限制Header最大移动距离为1.5倍.
删除 setOverScrollDistanceRatio 方法和 mOverScrollDistanceRatio 属性.
添加 setMinOverScrollDuration 方法.
修复某些特殊情况下,越界回弹未正常终止问题.
删除RefreshCompleteHook中的弱引用,避免某些特殊情况下,引用被回收导致RefreshLayout内部状态异常问题.

1.4.3

修改越界回弹实现,优化回弹效果.
修复移动视图过程中触发刷新刷新逻辑问题(PS:2个判断都少写了括号).
修复偶尔 WaveHeader 圆环刷新时坐标异常问题.
添加 setOverScrollDurationRatio 方法,用于设置回弹时长比例.
添加 setMaxOverScrollDuration 方法,用于设置最大回弹时长.
添加 isEnabledScrollToTopAutoRefresh 方法.
添加 setEnableScrollToTopAutoRefresh 方法.用于开启到顶自动刷新.
修复加载更多无更多数据没有正确设置问题(PS:即MASK的值错了,应为0x07<<10而不是0x05<<10).
修复若干触摸事件处理BUG.

1.4.1

修复状态视图填充LayoutParams不一致问题.
修改包名为me.dkzwm.widget.srl,使包名更符合规范.
修改二级刷新,删除 setEnableBackToStartPosAtOnce方法.
修改二级刷新,添加 setDurationOfBackToKeepTwoLeveHeaderViewPosition 方法.
修改二级刷新,添加 setDurationToCloseTwoLevelHeader 方法.
修改二级刷新,添加 setOffsetRatioToKeepTwoLevelHeaderWhileLoading 方法.
修改二级刷新,添加 getOffsetToKeepTwoLevelHeaderWhileLoading 方法.
删除 SmoothRefreshLayout styleable中的 sr_enable_two_level_pull_to_refresh 属性.
修改二级刷新,添加 TwoLevelSmoothRefreshLayout styleable,并添加 sr_enable_two_level_pull_to_refresh 属性.
修改二级刷新,修改 ITwoLevelIndicator 继承 IIndicator 接口.
修改二级刷新,在 ITwoLevelIndicator 中添加 setOffsetRatioToKeepTwoLevelHeaderWhileLoading 方法.
修改二级刷新,在 ITwoLevelIndicator 中添加 getOffsetToKeepTwoLevelHeaderWhileLoading 方法.
修改二级刷新,删除 TwoLevelRefreshView 接口参数中的 IIndicator 参数.
添加 WaveTextRefreshView,存放于Demo的header中.
更新英语Readme文件.
修复静态刷新视图构造器在某些特定情况下未很好的工作问题.
修复 WaveHeader 某些场景设置插值器不对问题.
修复自动刷新可能被打断问题.

1.4.0

删除了MODE属性,功能性和其他属性有重复,导致逻辑复杂度直线上升,去掉后使用其他属性组合替代.
修复未处于刷新状态调用refreshComplete()方法导致内部视图偏移问题.
去掉多余资源,减小包体积.
修改setResistanceOfPullUp方法为setResistanceOfFooter,使含义更明确.
修改setResistanceOfPullDown方法为setResistanceOfHeader,使含义更明确.
修改Xml sr_resistance_of_pull_up属性为 sr_resistance_of_footer,使含义更明确.
修改Xml sr_resistance_of_pull_down属性为 sr_resistance_of_header,使含义更明确.
修改setDurationOfBackToRefreshViewHeight方法为setDurationOfBackToKeepRefreshViewPosition,使含义更明确.
修改Xml sr_duration_of_back_to_refresh_height属性为 sr_duration_of_back_to_keep_refresh_pos,使含义更明确.
修改getDurationOfBackToHeaderHeight方法为getDurationOfBackToKeepHeaderPosition,使含义更明确.
修改setDurationOfBackToHeaderHeight方法为setDurationOfBackToKeepHeaderPosition,使含义更明确.
修改Xml sr_duration_of_back_to_header_height属性为 sr_duration_of_back_to_keep_header_pos,使含义更明确.
修改getDurationOfBackToFooterHeight方法为getDurationOfBackToKeepFooterPosition,使含义更明确.
修改setDurationOfBackToFooterHeight方法为setDurationOfBackToKeepFooterPosition,使含义更明确.
修改Xml sr_duration_of_back_to_footer_height属性为 sr_duration_of_back_to_keep_footer_pos,使含义更明确.
修改Xml sr_layout_gravity属性为 layout_gravity.
删除Xml sr_mode属性.
添加 sr_enable_refresh属性,设置是否启用下拉刷新.默认启用
添加 sr_enable_load_more属性,设置是否启用加载更多.默认不启用.
添加setEnableHideHeaderView方法.
添加isEnabledHideHeaderView方法.
添加isEnabledHideFooterView方法.
添加setEnableHideFooterView方法.
原有Mode对应改用如下属性组合替代.NONE->setDisableRefresh(true)+setDisableLoadMore(true)+setEnableOverScroll(false);REFRESH->setDisableRefresh(false)+setDisableLoadMore(true); LOAD_MORE->setDisableRefresh(true)+setDisableLoadMore(false);OVER_SCROLL->setDisableRefresh(false)+setDisableLoadMore(false)+setDisablePerformRefresh(true)+setDisablePerformLoadMore(true)+setEnableHideHeaderView(true)+setEnableHideFooterView(true);BOTH->setDisableRefresh(false)+setDisableLoadMore(false)