as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
感谢您的访问。此页面目前仅提供英语版本。我们正在开发中文版本。谢谢您的理解。

TouchableHighlight

A wrapper for making views respond properly to touches. On press down, the opacity of the wrapped view is decreased, which allows the underlay color to show through, darkening or tinting the view.

The underlay comes from wrapping the child in a new View, which can affect layout, and sometimes cause unwanted visual artifacts if not used correctly, for example if the backgroundColor of the wrapped view isn't explicitly set to an opaque color.

TouchableHighlight must have one child (not zero or more than one). If you wish to have several child components, wrap them in a View.

Copied to clipboard.


function MyComponent(props: MyComponentProps) {
  return (
    <View {...props} style={{flex: 1, backgroundColor: '#fff'}}>
      <Text>My Component</Text>
    </View>
  );
}

<TouchableHighlight
  activeOpacity={0.6}
  underlayColor="#DDDDDD"
  onPress={() => alert('Pressed!')}>
  <MyComponent />
</TouchableHighlight>;

Example

Copied to clipboard.


import React, {useState} from 'react';
import {StyleSheet, Text, TouchableHighlight, View} from 'react-native';
import {SafeAreaView, SafeAreaProvider} from 'react-native-safe-area-context';

const TouchableHighlightExample = () => {
  const [count, setCount] = useState(0);
  const onPress = () => setCount(count + 1);

  return (
    <SafeAreaProvider>
      <SafeAreaView style={styles.container}>
        <TouchableHighlight onPress={onPress}>
          <View style={styles.button}>
            <Text>Touch Here</Text>
          </View>
        </TouchableHighlight>
        <View style={styles.countContainer}>
          <Text style={styles.countText}>{count || null}</Text>
        </View>
      </SafeAreaView>
    </SafeAreaProvider>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    paddingHorizontal: 10,
  },
  button: {
    alignItems: 'center',
    backgroundColor: '#DDDDDD',
    padding: 10,
  },
  countContainer: {
    alignItems: 'center',
    padding: 10,
  },
  countText: {
    color: '#FF00FF',
  },
});

export default TouchableHighlightExample;


Reference

Props

TouchableWithoutFeedback Props

Inherits TouchableWithoutFeedback Props.


activeOpacity

Determines what the opacity of the wrapped view should be when touch is active. The value should be between 0 and 1. Defaults to 0.85. Requires underlayColor to be set.

Type
number

onHideUnderlay

Called immediately after the underlay is hidden.

Type
function

onShowUnderlay

Called immediately after the underlay is shown.

Type
function

ref

A ref setter that will be assigned an element node when mounted.


style

Type
View.style

isFocusableInTouchMode Vega

Determines whether the wrapped view is focusable in Touch mode

Type
boolean

underlayColor

The color of the underlay that will show through when the touch is active.

Type
color

hasTVPreferredFocus Android iOS Vega TV

TV preferred focus (see documentation for the View component).

Type Required Platform
boolean No Android, iOS, Vega

nextFocusDown Android Vega TV

TV next focus down (see documentation for the View component).

Type Required Platform
number No Android, Vega

nextFocusForward Android Vega TV

TV next focus forward (see documentation for the View component).

Type Required Platform
number No Android, Vega

nextFocusLeft Android Vega TV

TV next focus left (see documentation for the View component).

Type Required Platform
number No Android, Vega

nextFocusRight Android Vega TV

TV next focus right (see documentation for the View component).

Type Required Platform
number No Android, Vega

nextFocusUp Android Vega TV

TV next focus up (see documentation for the View component).

Type Required Platform
number No Vega

testOnly_pressed

Handy for snapshot tests.

Type
boolean

Last updated: Jul 08, 2026