Javascript 开始滚动[React Native]时,使TouchableOpacity不高亮显示元素

Javascript 开始滚动[React Native]时,使TouchableOpacity不高亮显示元素,javascript,react-native,listview,scroll,scrollview,Javascript,React Native,Listview,Scroll,Scrollview,TouchableOpacity使事物可触摸,或者如React Native所说: 使视图正确响应触摸的包装器 但是在滚动视图或列表视图中使用它会在我们(或至少是我)不想要的时候高亮显示 向下滚动充满元素的列表视图涉及以下三个步骤: 触碰元素 举手 松开手指 触摸该元素会立即产生高亮显示动画。但在这种情况下,我们只想滚动。我们不想对该元素做任何事情,无论是高亮显示还是打开细节视图等 这种情况并非总是发生,但大多数情况下都发生在我的Android设备上 处理这个问题的正确方法是什么?一个滚动手

TouchableOpacity
使事物可触摸,或者如React Native所说:

使视图正确响应触摸的包装器

但是在
滚动视图
列表视图
中使用它会在我们(或至少是我)不想要的时候高亮显示

向下滚动充满元素的
列表视图
涉及以下三个步骤:

  • 触碰元素
  • 举手
  • 松开手指
触摸该元素会立即产生高亮显示动画。但在这种情况下,我们只想滚动。我们不想对该元素做任何事情,无论是高亮显示还是打开细节视图等

这种情况并非总是发生,但大多数情况下都发生在我的Android设备上


处理这个问题的正确方法是什么?

一个滚动手势应该取消
触摸不透明度
触摸响应器,但是如果您认为
触摸不透明度
高亮显示被提前触发,您可以试着调整
delayPressIn
属性。

您可以使用
delayPressIn={1000}
,这将延迟动画,直到按下1秒钟

delayPressIn
在调用onPressIn之前,从触摸开始,以毫秒为单位的
延迟属性

要使用的示例:

<FlatList
  horizontal
  contentContainerStyle={{ paddingRight: 16 }}   // this set the padding to last item
  showsHorizontalScrollIndicator={false}         // hide the scroller
  data={results}
  keyExtractor={(result) => result.data.id}
  renderItem={({ item }) => {
    return (
      <TouchableOpacity
        delayPressIn={1000}         // delay animation for 1 second
        onPress={() => navigation.navigate('ResultsShow')}
      >
        <ResultsDetail result={item.data} />
      </TouchableOpacity>
    );
  }}
/>;
result.data.id}
renderItem={({item})=>{
返回(
navigation.navigate('resultshow')}
>
);
}}
/>;

您可以找到更多信息。

出于兴趣,将滚动视图包装成可触摸高光的使用案例是什么?事实并非如此。我们正在将
touchablepacity
元素包装在
ScrollView
中。谢谢。我没有考虑过<代码>触摸反馈>代码>道具。现在我将
delayPressIn
设置为一个非常高的数字,因为我不希望在按住按钮时出现动画。但这感觉并不完全正确。我想我需要一个自定义的突出显示动画,以便在长时间内点击、按住和长按。感谢
delayPressIn
工作正常,我将我的设置为
50
,这似乎适合我的滑动手势。老兄,我现在非常爱你。我不知道为什么这个道具。没有记录。React Native在文档方面是一团糟。现在我可以停止使用buggy TouchableHighlight(它对边框和图像的效果非常差)