Skip to content

Commit 6bd7555

Browse files
committed
Prevent scrollView to scroll with dpad when scrollEnabled property is set to false.
1 parent a89e932 commit 6bd7555

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import androidx.core.view.ViewCompat;
1919
import androidx.core.text.TextUtilsCompat;
2020
import android.util.Log;
21+
import android.view.KeyEvent;
2122
import android.view.FocusFinder;
2223
import android.view.MotionEvent;
2324
import android.view.View;
@@ -411,6 +412,15 @@ public boolean onTouchEvent(MotionEvent ev) {
411412
return super.onTouchEvent(ev);
412413
}
413414

415+
@Override
416+
public boolean executeKeyEvent(KeyEvent event) {
417+
int eventKeyCode = event.getKeyCode();
418+
if (!mScrollEnabled && (eventKeyCode == KeyEvent.KEYCODE_DPAD_LEFT || eventKeyCode == KeyEvent.KEYCODE_DPAD_RIGHT)) {
419+
return false;
420+
}
421+
return super.executeKeyEvent(event);
422+
}
423+
414424
@Override
415425
public void fling(int velocityX) {
416426

ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import android.graphics.drawable.Drawable;
1515
import androidx.core.view.ViewCompat;
1616
import android.util.Log;
17+
import android.view.KeyEvent;
1718
import android.view.MotionEvent;
1819
import android.view.View;
1920
import android.view.ViewGroup;
@@ -300,6 +301,15 @@ public boolean onTouchEvent(MotionEvent ev) {
300301
return super.onTouchEvent(ev);
301302
}
302303

304+
@Override
305+
public boolean executeKeyEvent(KeyEvent event) {
306+
int eventKeyCode = event.getKeyCode();
307+
if (!mScrollEnabled && (eventKeyCode == KeyEvent.KEYCODE_DPAD_DOWN || eventKeyCode == KeyEvent.KEYCODE_DPAD_UP)) {
308+
return false;
309+
}
310+
return super.executeKeyEvent(event);
311+
}
312+
303313
@Override
304314
public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
305315
if (removeClippedSubviews && mClippingRect == null) {

0 commit comments

Comments
 (0)