React Native - 按钮

  • 简述

    在本章中,我们将向您展示 React Native 中的可触摸组件。我们称它们为“可触摸”,因为它们提供内置动画,我们可以使用onPress用于处理触摸事件的道具。
    Facebook 提供Button组件,可用作通用按钮。请考虑以下示例以理解相同的内容。

    app.js

    
    import React, { Component } from 'react'
    import { Button } from 'react-native'
    const App = () => {
       const handlePress = () => false
       return (
          <Button
             onPress = {handlePress}
             title = "Red button!"
             color = "red"
          />
       )
    }
    export default App
    
    如果默认Button组件不适合您的需求,您可以使用以下组件之一来代替。
    按钮 Redbutton
  • 可触摸不透明度

    此元素将在触摸时更改元素的不透明度。

    app.js

    
    import React from 'react'
    import { TouchableOpacity, StyleSheet, View, Text } from 'react-native'
    const App = () => {
       return (
          <View style = {styles.container}>
             <TouchableOpacity>
                <Text style = {styles.text}>
                   Button
                </Text>
             </TouchableOpacity>
          </View>
       )
    }
    export default App
    const styles = StyleSheet.create ({
       container: {
          alignItems: 'center',
       },
       text: {
          borderWidth: 1,
          padding: 25,
          borderColor: 'black',
          backgroundColor: 'red'
       }
    })
    
    触摸不透明按钮
  • 可触摸的亮点

    当用户按下元素时,它会变暗,并且底层的颜色会透出来。

    app.js

    
    import React from 'react'
    import { View, TouchableHighlight, Text, StyleSheet } from 'react-native'
    const App = (props) => {
       return (
          <View style = {styles.container}>
             <TouchableHighlight>
                <Text style = {styles.text}>
                   Button
                </Text>
             </TouchableHighlight>
          </View>
       )
    }
    export default App
    const styles = StyleSheet.create ({
       container: {
          alignItems: 'center',
       },
       text: {
          borderWidth: 1,
          padding: 25,
          borderColor: 'black',
          backgroundColor: 'red'
       }
    })
    
  • 可触摸的原生反馈

    这将在按下元素时模拟墨水动画。

    app.js

    
    import React from 'react'
    import { View, TouchableNativeFeedback, Text, StyleSheet } from 'react-native'
    const Home = (props) => {
       return (
          <View style = {styles.container}>
             <TouchableNativeFeedback>
                <Text style = {styles.text}>
                   Button
                </Text>
             </TouchableNativeFeedback>
          </View>
       )
    }
    export default Home
    const styles = StyleSheet.create ({
       container: {
          alignItems: 'center',
       },
       text: {
          borderWidth: 1,
          padding: 25,
          borderColor: 'black',
          backgroundColor: 'red'
       }
    })
    
  • 无反馈可触摸

    当你想在没有任何动画的情况下处理触摸事件时应该使用此组件 通常,此组件用得不多。
    
    <TouchableWithoutFeedback>
       <Text>
          Button
       </Text>
    </TouchableWithoutFeedback>