From b1ae4dea74e4c90c52a971520e70971c0fcbd13b Mon Sep 17 00:00:00 2001 From: Sumeet Kumar Date: Fri, 6 Nov 2015 13:13:03 +0500 Subject: [PATCH 1/2] FIXED issue (Cannot draw back after Refreshing complete) FIXED issue (Cannot draw back after Refreshing complete) https://github.com/tuesda/CircleRefreshLayout/issues/7 https://github.com/tuesda/CircleRefreshLayout/issues/5 --- .../circlerefresh/CircleRefreshLayout.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java b/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java index cc8e8fe..1475271 100644 --- a/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java +++ b/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java @@ -253,8 +253,33 @@ public void finishRefreshing() { } mIsRefreshing = false; mHeader.setRefreshing(false); + + back(); } + public boolean isRefreshing() { + return mIsRefreshing; + } + + private void back() { + float height = mChildView.getTranslationY(); + ValueAnimator backTopAni = ValueAnimator.ofFloat(height, 0); + backTopAni.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + float val = (float) animation.getAnimatedValue(); + val = decelerateInterpolator.getInterpolation(val / mHeaderHeight) * val; + if (mChildView != null) { + mChildView.setTranslationY(val); + } + mHeader.getLayoutParams().height = (int) val; + mHeader.requestLayout(); + } + }); + backTopAni.setDuration((long) (height * BACK_TOP_DUR / mHeaderHeight)); + backTopAni.start(); + } + private OnCircleRefreshListener onCircleRefreshListener; public void setOnRefreshListener(OnCircleRefreshListener onCircleRefreshListener) { From bd0010781adc9d2a48af44040500f69bab785f5c Mon Sep 17 00:00:00 2001 From: Sumeet Kumar Date: Fri, 6 Nov 2015 13:16:02 +0500 Subject: [PATCH 2/2] Added timer to complete draw animation Added timer to complete draw animation when finish refresh --- .../circlerefresh/CircleRefreshLayout.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java b/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java index 1475271..788ad1c 100644 --- a/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java +++ b/circlerefresh/src/main/java/com/tuesda/walker/circlerefresh/CircleRefreshLayout.java @@ -254,7 +254,22 @@ public void finishRefreshing() { mIsRefreshing = false; mHeader.setRefreshing(false); - back(); + new Timer().schedule(new TimerTask() { + + @Override + public void run() { + Activity activity = (Activity) context; + activity.runOnUiThread(new Runnable() { + + @Override + public void run() { + back(); + } + }); + + } + }, 500); + } public boolean isRefreshing() {