Skip to content

Commit d926ff0

Browse files
committed
optimization
1 parent 6e3b32a commit d926ff0

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

library/src/main/java/com/stone/pile/libs/PileLayout.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import android.view.ViewTreeObserver;
1414
import android.view.animation.DecelerateInterpolator;
1515
import android.view.animation.Interpolator;
16+
import android.view.animation.LinearInterpolator;
1617
import android.widget.FrameLayout;
1718

1819
import java.util.ArrayList;
@@ -50,7 +51,7 @@ public class PileLayout extends ViewGroup {
5051

5152
private float animateValue;
5253
private ObjectAnimator animator;
53-
private Interpolator interpolator = new DecelerateInterpolator(2.6f);
54+
private Interpolator interpolator = new DecelerateInterpolator(1.6f);
5455
private Adapter adapter;
5556
private boolean hasSetAdapter = false;
5657
private float displayCount = 1.6f;
@@ -262,12 +263,16 @@ public boolean onTouchEvent(MotionEvent event) {
262263
int tag = Integer.parseInt(animatingView.getTag().toString());
263264

264265
// 计算目标位置
265-
float destX = originX.get(3);
266+
int destX = originX.get(3);
266267
if (velocity > VELOCITY_THRESHOLD || (animatingView.getLeft() > originX.get(3) + scrollDistanceMax / 2 && velocity > -VELOCITY_THRESHOLD)) {
267268
destX = originX.get(4);
268269
tag--;
269270
}
270-
if (tag < 0 || tag >= adapter.getItemCount() || Math.abs(animatingView.getLeft() - destX) < mTouchSlop) {
271+
if (tag < 0 || tag >= adapter.getItemCount()) {
272+
return true;
273+
}
274+
275+
if (Math.abs(animatingView.getLeft() - destX) < mTouchSlop && Math.abs(event.getX() - downX) < mTouchSlop) {
271276
return true;
272277
}
273278

0 commit comments

Comments
 (0)