Skip to content

Commit a150143

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

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

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

Lines changed: 18 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,23 @@ 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
308+
&& (eventKeyCode == KeyEvent.KEYCODE_DPAD_DOWN
309+
|| eventKeyCode == KeyEvent.KEYCODE_DPAD_DOWN_LEFT
310+
|| eventKeyCode == KeyEvent.KEYCODE_DPAD_DOWN_RIGHT
311+
|| eventKeyCode == KeyEvent.KEYCODE_DPAD_UP
312+
|| eventKeyCode == KeyEvent.KEYCODE_DPAD_UP_LEFT
313+
|| eventKeyCode == KeyEvent.KEYCODE_DPAD_UP_RIGHT
314+
|| eventKeyCode == KeyEvent.KEYCODE_DPAD_LEFT
315+
|| eventKeyCode == KeyEvent.KEYCODE_DPAD_RIGHT)) {
316+
return false;
317+
}
318+
return super.executeKeyEvent(event);
319+
}
320+
303321
@Override
304322
public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
305323
if (removeClippedSubviews && mClippingRect == null) {

0 commit comments

Comments
 (0)