Skip to content

Commit 8de040f

Browse files
author
Thomas LECLERCQ
committed
Add android bounce cotrol
1 parent 1d95577 commit 8de040f

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

android/src/main/java/com/rnds/DirectedScrollView.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.rnds;
22

3+
import android.util.Log;
34
import android.animation.ObjectAnimator;
45
import android.content.Context;
56
import android.graphics.Matrix;
@@ -31,6 +32,8 @@ public class DirectedScrollView extends ReactViewGroup {
3132
private float minimumZoomScale = 1.0f;
3233
private float maximumZoomScale = 1.0f;
3334
private boolean bounces = true;
35+
private boolean verticalBounceEnabled = true;
36+
private boolean horizontalBounceEnabled = true;
3437
private boolean alwaysBounceVertical = false;
3538
private boolean alwaysBounceHorizontal = false;
3639
private boolean bouncesZoom = true;
@@ -214,7 +217,7 @@ private void onActionMove(MotionEvent motionEvent) {
214217
scrollY = startScrollY + deltaY;
215218

216219
if (bounces) {
217-
clampAndTranslateChildren(false, getMaxScrollY() <= 0 && !alwaysBounceVertical, getMaxScrollX() <= 0 && !alwaysBounceHorizontal);
220+
clampAndTranslateChildren(false, !verticalBounceEnabled || (getMaxScrollY() <= 0 && !alwaysBounceVertical), !horizontalBounceEnabled || (getMaxScrollX() <= 0 && !alwaysBounceHorizontal));
218221
} else {
219222
clampAndTranslateChildren(false);
220223
}
@@ -433,6 +436,14 @@ public void setBouncesZoom(final boolean bouncesZoom) {
433436
this.bouncesZoom = bouncesZoom;
434437
}
435438

439+
public void setVerticalBounceEnabled(final boolean verticalBounceEnabled) {
440+
this.verticalBounceEnabled = verticalBounceEnabled;
441+
}
442+
443+
public void setHorizontalBounceEnabled(final boolean horizontalBounceEnabled) {
444+
this.horizontalBounceEnabled = horizontalBounceEnabled;
445+
}
446+
436447
public void setAlwaysBounceHorizontal(final boolean alwaysBounceHorizontal) {
437448
this.alwaysBounceHorizontal = alwaysBounceHorizontal;
438449
}

android/src/main/java/com/rnds/DirectedScrollViewManager.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,16 @@ public void setBouncesZoom(DirectedScrollView view, @Nullable boolean bouncesZoo
8989
view.setBouncesZoom(bouncesZoom);
9090
}
9191

92+
@ReactProp(name = "verticalBounceEnabled", defaultBoolean = true)
93+
public void setVerticalBounceEnabled(DirectedScrollView view, @Nullable boolean verticalBounceEnabled) {
94+
view.setVerticalBounceEnabled(verticalBounceEnabled);
95+
}
96+
97+
@ReactProp(name = "horizontalBounceEnabled", defaultBoolean = true)
98+
public void setHorizontalBounceEnabled(DirectedScrollView view, @Nullable boolean horizontalBounceEnabled) {
99+
view.setHorizontalBounceEnabled(horizontalBounceEnabled);
100+
}
101+
92102
@ReactProp(name = "alwaysBounceHorizontal", defaultBoolean = false)
93103
public void setAlwaysBounceHorizontal(DirectedScrollView view, @Nullable boolean alwaysBounceHorizontal) {
94104
view.setAlwaysBounceHorizontal(alwaysBounceHorizontal);

0 commit comments

Comments
 (0)