触摸事件处理
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
用户主要通过触摸与移动应用进行交互。他们可以组合使用多种手势,例如点击按钮、滚动列表或缩放地图。React Native 提供了处理各类常见手势的组件,以及一套全面的手势响应系统来实现更高级的手势识别功能。但您最可能需要的基础组件就是 Button(按钮)。
显示基础按钮
Button 组件提供了基础按钮功能,可在所有平台上正常渲染。显示按钮的最简示例如下:
<Button
onPress={() => {
console.log('You tapped the button!');
}}
title="Press Me"
/>
在 iOS 上会渲染为蓝色标签,在 Android 上则显示为带浅色文字的蓝色圆角矩形。按下按钮将触发 "onPress" 函数,此示例中会显示警告弹窗。您可以通过 "color" prop 自定义按钮颜色。

您可以通过下方示例体验 Button 组件。点击右下角切换按钮选择预览平台,然后点击 "Tap to Play" 即可预览应用效果。
可触摸组件
如果基础按钮样式不符合您的应用需求,可以使用 React Native 提供的各类 "Touchable" 组件构建自定义按钮。这些组件能捕获点击手势并在识别手势时提供视觉反馈。但请注意,它们不包含默认样式,需要您自行设计视觉效果。
选择哪种 "Touchable" 组件取决于您需要提供的反馈类型:
-
通常 TouchableHighlight 适用于网页按钮或链接场景,用户按下时视图背景会变暗
-
Android 平台可考虑使用 TouchableNativeFeedback 实现水墨涟漪触控反馈效果
-
TouchableOpacity 通过降低按钮不透明度提供反馈,用户按压时能透出背景内容
-
若需处理点击手势但不需要视觉反馈,请使用 TouchableWithoutFeedback
某些场景下,您可能需要检测用户长按视图的持续时间。通过向任意 "Touchable" 组件的 onLongPress props 传入函数即可处理长按事件。
以下示例展示了这些组件的实际效果:
滚动与滑动
触屏设备常用的手势包括滑动(swipe)和拖拽(pan),用户可通过这些手势滚动列表或切换内容页面。相关功能请参阅核心组件 ScrollView。
已知问题
- react-native#29308:触摸区域不会超出父视图边界,且 Android 平台不支持负边距