Zen*_*ith 6 android react-native
我知道这个问题已被多次提出,但我还没有在任何其他线程上找到有效的修复程序(其中大多数线程几乎没有回复)。
在我的实现中,我有一个 ScrollView,它是一个项目列表的父项,每个项目都有一个用于横向滑动的 panResponder (如 Tinder 卡)。
我遇到的问题是 ScrollView 停止 panResponder 动画并优先考虑滚动。
我尝试过动态切换scrollEnabled滚动视图onPanResponderGrant,onPanResponderRelease但这不是一个可行的解决方案,因为在 panResponder 上垂直滚动会onPanResponderGrant触发禁用滚动。
这是我的实现panResponder:
this._panResponder = PanResponder.create({
onStartShouldSetPanResponder: (evt, gestureState) => true,
onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
onMoveShouldSetPanResponder: (evt, gestureState) => false,
onMoveShouldSetPanResponderCapture: (evt, gestureState) => false,
onShouldBlockNativeResponder: (evt, gestureState) => false,
onPanResponderTerminationRequest: () => false,
onPanResponderGrant: (event, gestureState) => {
this.pan.setValue(0);
this.opacity.setValue(0)
this.rotation.setValue(0)
},
onPanResponderMove: (event, gesture) => {
this.pan.setValue(gesture.dx)
this.rotation.setValue(gesture.dx)
this.opacity.setValue(gesture.dx)
},
onPanResponderRelease: (event, gestureState) => {
if(gestureState.dx < -SWIPE_THRESHOLD){
this.removeCard()
} else {
this.resetPosition()
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是呈现每个可刷卡的 FlatList:
<FlatList
data={this.state.cards}
keyExtractor={item => item.id}
renderItem={({ item }) => (
<DataCard
type={item.type}
name={item.name}
/>
)}
/>
Run Code Online (Sandbox Code Playgroud)
从那以后,我换了ScrollView一个FlatList,希望能神奇地解决这个问题,但没有运气。
此功能在 iOS 上完美运行,但问题仍然存在于 Android 上。
这似乎是一个很常见的问题,没有具体的解决方案。这就是我发布此内容所希望的。
谢谢!
| 归档时间: |
|
| 查看次数: |
7519 次 |
| 最近记录: |