TouchableOpacity 内的 ScrollView
Posted
技术标签:
【中文标题】TouchableOpacity 内的 ScrollView【英文标题】:ScrollView inside TouchableOpacity 【发布时间】:2017-08-18 22:28:24 【问题描述】:我正在尝试在TouchableOpacity
组件内设置水平ScrollView
(出于必要的原因)。然而TouchableOpacity
会覆盖任何水平滚动功能并执行onPress
,即使对于水平触摸移动也是如此。
有没有办法让ScrollView
触摸事件优先于父Touchable
?这样,用户可以滚动组件并按下它。下面是一个类似于我正在尝试实现的代码 sn-p。
<TouchableOpacity
onPress=this._onPress>
<View>
... Some view I want static ...
</View>
<ScrollView
horizontal=true>
... A bunch of components I want scrollable ...
</ScrollView>
</TouchableOpacity>
谢谢!
【问题讨论】:
为什么不能把Scrollview放在Touchable下面?如果应该可以在按下 scrollView 时发送触摸事件(仅按下,而不是滚动时),我认为这是不可能的。 Touchable 在第一次初始化时如何知道按下时的动作是否会变成滚动条? 【参考方案1】:你可以试试这个。我试过你的代码,它对我有用。
<TouchableOpacity>
<View>
<Text>... Some view I want static ...</Text>
</View>
<ScrollView horizontal>
<View onStartShouldSetResponder=() => true>
<Text>... A bunch of components I want scrollable ...</Text>
</View>
</ScrollView>
</TouchableOpacity>
【讨论】:
太棒了!这很好用 是的,它也对我有用!【参考方案2】:@Henning Hall 在这里有正确答案,但如果失败,您可以在任一组件上实现 PanResponder 以获得所需的触摸事件。
【讨论】:
以上是关于TouchableOpacity 内的 ScrollView的主要内容,如果未能解决你的问题,请参考以下文章
图标的 TouchableOpacity 和 onPress
react native:TouchableOpacity 组件上的样式道具
React Native 无法点击 TouchableOpacity 或 TextInput
项目映射时获取键和项目 onPress TouchableOpacity