首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pressable和TouchableOpacity的区别

Pressable和TouchableOpacity的区别
EN

Stack Overflow用户
提问于 2020-07-09 16:27:09
回答 3查看 10K关注 0票数 19

随着0.63版本的react native更新,出现了新的组件。有没有更有经验的人能解释一下PressableTouchableOpacity有什么不同,什么时候使用它们更好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-07-09 16:36:22

可按压是RN 0.63的一个新引入,在此之前,可触摸不透明度是包装组件或类似组件最常用的组件。

它们的基本功能是相同的,使文本/图像可点击和用户交互。

但是有了Pressable,你可以访问很多新的道具,比如:

HitRect,这是一个很酷的特性,可以访问docs:

手指不是最精确的仪器,用户意外激活错误的元素或错过激活区域是很常见的。为了提供帮助,Pressable提供了一个可选的HitRect,您可以使用它来定义一个触摸可以注册到离包装元素多远的地方。印刷机可以从HitRect中的任何位置开始。

这显然是我们用于索引的更好的替代方案,在这里它更精确,并且您定义的索引也不会干扰子组件/其他组件的Z- hitslop

所以基本上你得到了一个按钮的所有功能,touchableOpacity和很酷的新道具。一定要查看他们的文档:rn-pressable

Hopeit helps.feel免去疑虑

票数 25
EN

Stack Overflow用户

发布于 2021-08-30 01:48:04

我只想补充一下Pressable的一个缺点和一个变通方法。

缺点是Pressable没有像TouchableOpacity那样的自动反馈。

但是,您可以使用Pressable的style属性添加您自己的自定义反馈,该属性带有一个按下的状态标识符:

代码语言:javascript
运行
复制
<Pressable
  style={({ pressed }) => [
    { opacity: pressed ? 0.5 : 1.0 }
  ]}
  onPress={() => console.log('Pressed')}
>
 <View><Text>Press Me</Text></View>
</Pressable>
票数 16
EN

Stack Overflow用户

发布于 2020-07-09 19:30:54

这里有一张图片来消除你的疑虑。

包装的元素上的工作原理

可打印的

当按键被激活时,将调用onPressIn。当取消激活按下手势时,将调用onPressOut。

按下onPressIn后,将发生以下两种情况之一:

  1. 此人将移除手指,触发onPressOut,然后触发onPress。
  2. 如果此人在移除手指之前将手指离开超过370毫秒,则触发onLongPress。(当他们移走手指时,onPressOut仍然会开火。)

请参考documentation了解更多详细信息。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62810567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档