如何在滚动时禁用 TouchableOpacity 的突出显示效果?

Hen*_*aye 14 scrollview react-native touchableopacity

<TouchableOpacity style={{ flex: 1 }} >
  <ImageBackground
    source={require('../../images/home.jpg')}>
      <View style={styles.item} collapsable={false}>
        <H3>{contentData[i].name}</H3>
        <Text>{contentData[i].description}</Text>
      </View>
  </ImageBackground>
</TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)

我有TouchableOpacity一个ScrollView. 我想禁用高亮效果TouchableOpacity。滚动时,我只想在onPress触发事件时突出显示。因为它可能会混淆用户它被按下。

小智 21

只需传递activeOpactity值为 1 的 prop。

<TouchableOpacity activeOpacity={1}>....</TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)

确保从“react-native”而不是“react-native-gesture-handler”导入 TouchableOpacity。

  • @JeevanPrakash 那么你应该使用 TouchableWithoutFeedback (3认同)

小智 13

尝试在滚动时将activeOpacity道具设置TouchableOpacity为 1。当用户停止滚动时使用默认设置。

https://facebook.github.io/react-native/docs/touchableopacity#activeopacity

  • 这工作正常。谢谢!设置 activeOpacity={1} 不会使视图淡出。 (2认同)

And*_*iko 7

您可以尝试更改参数delayPressIn看医生

<TouchableOpacity delayPressIn={150} > 
 {children}
</TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以尝试在'react-native-gesture-handler'中将TouchOpacity替换为RectButton。并且不要忘记将ScrollView导入从'react-native'替换为'react-native-gesture-handler'

我在这里找到了这个解决方案。

它只是说:

为放置在可滚动容器中的按钮提供本机和平台默认交互(在这种情况下,交互会稍微延迟,以防止按钮在您快速滑动时突出显示)