Skip to content

Commit 41defa7

Browse files
authored
[Android] Add ScrollViewHook to ReactHorizontalScrollView components (#3298)
## Description This PR attaches the `ScrollViewHook` to `ReactHorizontalScrollView` component views ## Test plan <!-- Describe how did you test this change here. --> <details> <summary> Collapsed test code </summary> ```tsx import React from 'react'; import { StyleSheet, View, ScrollView } from 'react-native'; import { Gesture, GestureDetector, RectButton, } from 'react-native-gesture-handler'; export default function EmptyExample() { const scrollGesture = Gesture.Native(); return ( <View style={styles.container}> {/* Continuous gesture inside continuous native list - horizontal */} <GestureDetector gesture={scrollGesture}> <ScrollView style={styles.horizontalList} horizontal> {new Array(20) .fill(1) .map((value, index) => value * index) .map((value) => ( // Discrete gesture inside continuous native list <RectButton key={value} onPress={() => console.log('discrete gesture inside horizontal scroll view') } style={styles.horizontalElement} /> ))} </ScrollView> </GestureDetector> {/* Continuous gesture inside continuous native list */} <GestureDetector gesture={scrollGesture}> <ScrollView style={styles.list}> {new Array(20) .fill(1) .map((value, index) => value * index) .map((value) => ( // Discrete gesture inside continuous native list <RectButton key={value} onPress={() => console.log('discrete gesture')} style={styles.element} /> ))} </ScrollView> </GestureDetector> </View> ); } const styles = StyleSheet.create({ container: { justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', gap: 20, }, externalContainer: { flexDirection: 'row', gap: 20, marginTop: 50, }, box: { backgroundColor: 'tomato', height: 100, }, list: { width: 250, backgroundColor: 'plum', }, element: { margin: 1, height: 40, backgroundColor: 'orange', }, horizontalList: { height: 180, }, horizontalElement: { margin: 1, width: 80, backgroundColor: 'orange', }, }); ``` </details>
1 parent 802af8a commit 41defa7

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.view.View
66
import android.view.ViewConfiguration
77
import android.view.ViewGroup
88
import android.widget.ScrollView
9+
import com.facebook.react.views.scroll.ReactHorizontalScrollView
910
import com.facebook.react.views.scroll.ReactScrollView
1011
import com.facebook.react.views.swiperefresh.ReactSwipeRefreshLayout
1112
import com.facebook.react.views.text.ReactTextView
@@ -85,6 +86,7 @@ class NativeViewGestureHandler : GestureHandler<NativeViewGestureHandler>() {
8586
is ReactEditText -> this.hook = EditTextHook(this, view)
8687
is ReactSwipeRefreshLayout -> this.hook = SwipeRefreshLayoutHook(this, view)
8788
is ReactScrollView -> this.hook = ScrollViewHook()
89+
is ReactHorizontalScrollView -> this.hook = ScrollViewHook()
8890
is ReactTextView -> this.hook = TextViewHook()
8991
is ReactViewGroup -> this.hook = ReactViewGroupHook()
9092
}

0 commit comments

Comments
 (0)