下拉刷新动画不能关闭的BUG
来源:互联网 发布:nznd男团 知乎 编辑:程序博客网 时间:2024/06/05 13:22
最近项目中遇到一个下拉刷新动画不能关闭的bug,在连续点击强制手动刷新的时候,刷新动画一直存在不能关闭;下拉刷新则没有此问题。查阅代码发现是刷新控件的问题:
//比较新旧滚动值 if(oldScrollValue !=newScrollValue) { //滚动 if (delayMillis > 0) { postDelayed(mCurrentSmoothScrollRunnable, delayMillis); } else { post(mCurrentSmoothScrollRunnable); } }
mCurrentSmoothScrollRunnable代码
final class SmoothScrollRunnable implements Runnable { private final Interpolator mInterpolator; private final int mScrollToY; private final int mScrollFromY; private final long mDuration; private OnSmoothScrollFinishedListener mListener; private boolean mContinueRunning = true; private long mStartTime = -1; private int mCurrentY = -1; public SmoothScrollRunnable(int fromY, int toY, long duration, OnSmoothScrollFinishedListener listener) { mScrollFromY = fromY; mScrollToY = toY; mInterpolator = mScrollAnimationInterpolator; mDuration = duration; mListener = listener; } @Override public void run() { if (mStartTime == -1) { mStartTime = System.currentTimeMillis(); } else { ...... mCurrentY = mScrollFromY - deltaY; setHeaderScroll(mCurrentY); } // If we're not at the target Y, keep going... if (mContinueRunning && mScrollToY != mCurrentY) { ViewCompat.postOnAnimation(PullToRefreshBase.this, this); } //mScrollToY == mCurrentY滚动到指定位置,下拉界面完全展开,调用滚动结束监听 else { if (null != mListener) { mListener.onSmoothScrollFinished(); } } }
原因:实现机制滚动到指定位置,下拉界面完全展开,调用滚动结束监听。如果正好下拉界面完全展开的时候点击了强制刷新,则不会调用滚动结束监听
解决方案:
if(oldScrollValue !=newScrollValue) { //滚动 if (delayMillis > 0) { postDelayed(mCurrentSmoothScrollRunnable, delayMillis); } else { post(mCurrentSmoothScrollRunnable); } } //增加以下代码解决手动刷新问题 else{ if (null != listener) { listener.onSmoothScrollFinished(); } }
0 0
- 下拉刷新动画不能关闭的BUG
- 关闭SwipeRefreshLayout的下拉刷新
- Android的下拉刷新动画
- PullToRefreshListView 下拉刷新谈不会的bug
- RecyclerView下拉刷新数据的一个Bug
- 高大上的下拉刷新动画
- pulltorefreshlistview的自定义下拉刷新动画
- MUI添加下拉刷新的动画效果
- 下拉刷新动画研究
- 仿美团下拉刷新动画
- 仿京东下拉刷新动画
- Android 更改下拉刷新(使用PulltoRefresh)的下拉动画样式
- RecyclerView下拉刷新bug修复
- PullToRrefresh自定义下拉刷新动画
- 动画特效九:下拉刷新
- 修改PullToRefresh下拉刷新动画
- PullToRrefresh自定义下拉刷新动画
- PullToRrefresh自定义下拉刷新动画
- 注解用法详解——@SuppressWarnings
- dumpsys命令的使用及telephony.registry解读
- Andorid CoordinatorLayout中自定义Behavior以应用在任何类型控件上
- html 空链接 href=“#"与href="javascript:void(0)”的区别
- BLE配对绑定过程梳理
- 下拉刷新动画不能关闭的BUG
- Matconvnet实现目标检测(person&car)
- Struts2存取数据
- Virtualbox中Linux添加新磁盘并创建分区
- 随机数和随机字符串的生成
- MySQL数据恢复的九把瑞士军刀
- Implement Queue by Two Stacks 解题报告
- ubuntu 工具 安装笔记
- 在微信网页中,实现微信通过菜单‘在浏览器中打开’跳转到指定的url