Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 46 additions & 46 deletions Phoenix/src/main/java/com/yalantis/phoenix/PullToRefreshView.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,6 @@ public class PullToRefreshView extends ViewGroup {
*/
private int mCurrentOffsetTop;

public boolean isRefreshing() {
return mRefreshing;
}

private boolean mRefreshing;
private int mActivePointerId;
private boolean mIsBeingDragged;
Expand All @@ -76,6 +72,48 @@ public boolean isRefreshing() {

private int finishRefreshToPauseDuration = 0;

private final Animation mAnimateToStartPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
moveToStart(interpolatedTime);
}
};

private final Animation mAnimateToCorrectPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
int targetTop;
int endTarget = mTotalDragDistance;
targetTop = mFrom + (int) ((endTarget - mFrom) * interpolatedTime);
int offset = targetTop - mTarget.getTop();

mCurrentDragPercent = mFromDragPercent - (mFromDragPercent - 1.0f) * interpolatedTime;
mBaseRefreshView.setPercent(mCurrentDragPercent, false);
if (mListener != null) {
float pos = mFrom + (endTarget - mFrom) * interpolatedTime;
mListener.ondragDistanceChange(pos,
mCurrentDragPercent, (pos - mTarget.getTop()) / mTotalDragDistance);
}
setTargetOffsetTop(offset, false /* requires update */);
}
};

private Animation.AnimationListener mToStartListener = new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
mBaseRefreshView.stop();//停止RefreshView的加载动画
mCurrentOffsetTop = mTarget.getTop();//更新mCurrentOffsetTop
}
};

public PullToRefreshView(Context context) {
this(context, null);
}
Expand All @@ -101,6 +139,10 @@ public PullToRefreshView(Context context, AttributeSet attrs) {
ViewCompat.setChildrenDrawingOrderEnabled(this, true);
}

public boolean isRefreshing() {
return mRefreshing;
}

public void setRefreshStyle(int type) {
setRefreshing(false);
switch (type) {
Expand Down Expand Up @@ -340,32 +382,6 @@ private void animateOffsetToCorrectPosition() {
// mTarget.setPadding(mTargetPaddingLeft, mTargetPaddingTop, mTargetPaddingRight, mTotalDragDistance);
}

private final Animation mAnimateToStartPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
moveToStart(interpolatedTime);
}
};

private final Animation mAnimateToCorrectPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
int targetTop;
int endTarget = mTotalDragDistance;
targetTop = mFrom + (int) ((endTarget - mFrom) * interpolatedTime);
int offset = targetTop - mTarget.getTop();

mCurrentDragPercent = mFromDragPercent - (mFromDragPercent - 1.0f) * interpolatedTime;
mBaseRefreshView.setPercent(mCurrentDragPercent, false);
if (mListener != null) {
float pos = mFrom + (endTarget - mFrom) * interpolatedTime;
mListener.ondragDistanceChange(pos,
mCurrentDragPercent, (pos - mTarget.getTop()) / mTotalDragDistance);
}
setTargetOffsetTop(offset, false /* requires update */);
}
};

private void moveToStart(float interpolatedTime) {
int targetTop = mFrom - (int) (mFrom * interpolatedTime);
float targetPercent = mFromDragPercent * (1.0f - interpolatedTime);
Expand Down Expand Up @@ -418,22 +434,6 @@ private void setRefreshing(boolean refreshing, final boolean notify) {
}
}

private final Animation.AnimationListener mToStartListener = new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
mBaseRefreshView.stop();//停止RefreshView的加载动画
mCurrentOffsetTop = mTarget.getTop();//更新mCurrentOffsetTop
}
};

/**
* 处理多指触控的点击事件
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,75 @@ public class PullToRefreshLayout extends ViewGroup {
private int finishRefreshToPauseDuration = 0;

private int mHeaderViewIndex;

private final Animation mAnimateToStartPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
moveToStart(interpolatedTime);
}
};

private final Animation mAnimateToCorrectPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
int targetTop;
int endTarget = mTotalDragDistance;
targetTop = mFrom + (int) ((endTarget - mFrom) * interpolatedTime);
int offset = targetTop - mTarget.getTop();

mCurrentDragPercent = mFromDragPercent - (mFromDragPercent - 1.0f) * interpolatedTime;
if (mListener != null&&!mRefreshing) {
float pos = mFrom + (endTarget - mFrom) * interpolatedTime;
mListener.onDragDistanceChange(pos,
mCurrentDragPercent, (pos - mTarget.getTop()) / mTotalDragDistance);
}
setTargetOffsetTop(offset, false /* requires update */);
}
};

private Animation.AnimationListener mToStartListener = new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
mCurrentOffsetTop = mTarget.getTop();//更新mCurrentOffsetTop
}
};

private Animation.AnimationListener mReadyToRefreshListener= new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {

}

@Override
public void onAnimationEnd(Animation animation) {
if (mRefreshing) {//开始刷新
if (mNotify) {
if (mListener != null) {
mListener.onRefresh();
}
}
} else {//停止刷新
animateOffsetToStartPosition();
}
//更新mCurrentOffsetTop
mCurrentOffsetTop = mTarget.getTop();
// mTarget.setPadding(mTargetPaddingLeft, mTargetPaddingTop, mTargetPaddingRight, mTotalDragDistance);
}

@Override
public void onAnimationRepeat(Animation animation) {

}
};

public PullToRefreshLayout(Context context) {
this(context, null);
}
Expand Down Expand Up @@ -355,31 +424,6 @@ private void animateOffsetToCorrectPosition() {
mRefreshView.startAnimation(mAnimateToCorrectPosition);
}

private final Animation mAnimateToStartPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
moveToStart(interpolatedTime);
}
};

private final Animation mAnimateToCorrectPosition = new Animation() {
@Override
public void applyTransformation(float interpolatedTime, Transformation t) {
int targetTop;
int endTarget = mTotalDragDistance;
targetTop = mFrom + (int) ((endTarget - mFrom) * interpolatedTime);
int offset = targetTop - mTarget.getTop();

mCurrentDragPercent = mFromDragPercent - (mFromDragPercent - 1.0f) * interpolatedTime;
if (mListener != null&&!mRefreshing) {
float pos = mFrom + (endTarget - mFrom) * interpolatedTime;
mListener.onDragDistanceChange(pos,
mCurrentDragPercent, (pos - mTarget.getTop()) / mTotalDragDistance);
}
setTargetOffsetTop(offset, false /* requires update */);
}
};

private void moveToStart(float interpolatedTime) {
int targetTop = mFrom - (int) (mFrom * interpolatedTime);
float targetPercent = mFromDragPercent * (1.0f - interpolatedTime);
Expand Down Expand Up @@ -435,49 +479,6 @@ public void run() {
}
}

private final Animation.AnimationListener mToStartListener = new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
mCurrentOffsetTop = mTarget.getTop();//更新mCurrentOffsetTop
}
};

private final Animation.AnimationListener mReadyToRefreshListener= new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {

}

@Override
public void onAnimationEnd(Animation animation) {
if (mRefreshing) {//开始刷新
if (mNotify) {
if (mListener != null) {
mListener.onRefresh();
}
}
} else {//停止刷新
animateOffsetToStartPosition();
}
//更新mCurrentOffsetTop
mCurrentOffsetTop = mTarget.getTop();
// mTarget.setPadding(mTargetPaddingLeft, mTargetPaddingTop, mTargetPaddingRight, mTotalDragDistance);
}

@Override
public void onAnimationRepeat(Animation animation) {

}
};

/**
* 处理多指触控的点击事件
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,19 +58,6 @@ public class WaterDropListView extends ListView implements OnScrollListener,Wate
private final static float OFFSET_RADIO = 1.8f; // support iOS like pull
private boolean mIsRefreshing;

public boolean isLoadingMore() {
return isLoadingMore();
}

public boolean isRefreshing() {
return mIsRefreshing;
}

private enum ScrollBack{
header,
footer
} // feature.

/**
* @param context
*/
Expand All @@ -89,6 +76,19 @@ public WaterDropListView(Context context, AttributeSet attrs, int defStyle) {
initWithContext(context);
}

public boolean isLoadingMore() {
return isLoadingMore();
}

public boolean isRefreshing() {
return mIsRefreshing;
}

private enum ScrollBack{
header,
footer
} // feature.

private void initWithContext(Context context) {
mScroller = new Scroller(context, new DecelerateInterpolator());
// XListView need the scroll event, and it will dispatch the event to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,18 @@ public class LoadView extends ImageView {
private int height;
private Bitmap bitmap;

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
degrees += 30f;
max.setRotate(degrees, width, height);
setImageMatrix(max);
if(degrees==360){
degrees=0;
}
}
};

public LoadView(Context context) {
super(context);
init();
Expand All @@ -39,18 +51,6 @@ public LoadView(Context context, AttributeSet attrs, int defStyleAttr) {
init();
}

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
degrees += 30f;
max.setRotate(degrees, width, height);
setImageMatrix(max);
if(degrees==360){
degrees=0;
}
}
};

private void init() {
setScaleType(ScaleType.MATRIX);
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xlistview_loading);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,6 @@ public class XListView extends ListView implements OnScrollListener {
private int mHeaderViewHeight; // header view's height
private boolean mEnablePullRefresh = true;

public boolean isPullRefreshing() {
return mPullRefreshing;
}

private boolean mPullRefreshing = false; // is refreashing.

// -- footer view
Expand Down Expand Up @@ -88,6 +84,10 @@ public XListView(Context context, AttributeSet attrs, int defStyle) {
initWithContext(context);
}

public boolean isPullRefreshing() {
return mPullRefreshing;
}

private void initWithContext(Context context) {
mScroller = new Scroller(context, new DecelerateInterpolator());
// XListView need the scroll event, and it will dispatch the event to
Expand Down
Loading