免费开源的iOS开发学习平台

React Native基础:10-Button组件

Button组件简介

Button组件是一个简单的跨平台的按钮组件。Button组件可以被点击,点击之后可以触发执行特定的动作,并且会有一个渐变的效果反馈给用户。官方提供的Button组件可以有如下一些样式,Button组件的样式在iOS客户端以及Android客户端的显示会有差异。

如果官方提供的Button组件外观并不符合所需的设计要求,可以使用TouchableOpacity或是TouchableNativeFeedback组件来制作自定义的按钮,或者也可以在github.com网站上搜索'react native button'来看看社区其他人的作品。

在React Native中,我们可以使用如下的方式创建一个简单的Button组件。

<Button
  title="99iOS"
  color="red"
/>

Button组件的属性

Button组件中定义了如下几个常用的属性和函数,用于定制Button组件的样式以及行为。

  • title,按钮内显示的文本;

  • color,在iOS中,用于设置按钮文本的颜色,在Android中,用于设置按钮的背景色;

  • onPress,用户点击按钮时所调用的处理函数,也就是说,处理按钮的点击事件只需要给Button组件的onPress属性赋值就可以了。例如,下面的代码中,当点击按钮会调用onButtonPress()函数,显示一个提示框。

onButtonPress() {
    Alert.alert('按钮被点击');
  }

<Button
  onPress={this.onButtonPress}
  title="99iOS"
  color="red"
/>
  • disabled,设置按钮是否可以被点击,当设置为true时按钮将不能够被点击。如下代码中,按钮将不能够被点击。
<Button 
onPress={this.onButtonPress} 
title="不能点击的按钮" 
color="red" 
disabled={true}/>

示例代码

下方的示例代码中,演示了如何使用Button组件,包括Button组件的创建、样式定制以及点击方法的设置等功能。

  • 在终端中执行如下命令,创建ButtonDemo工程;
react-native init ButtonDemo
  • 使用Atom打开工程的index.ios.js文件,编写组件所使用的样式
const styles = StyleSheet.create({
  container: {
    flex: 1,
    flexDirection: 'column',
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
});
  • 在一个View组件中,添加三个Button组件,对Button组件的样式以及点击行为进行设置。
export default class ButtonDemo extends Component {
  //Button组件点击后执行的函数
  onButtonPress() {
    Alert.alert('按钮被点击');
  }
  //添加三个Button组件
  render() {
    return (
      <View style={styles.container}>
        <Button title="99iOS" color="blue"/>
        <Button onPress={this.onButtonPress} title=" 可以点击" color="red"/>
        <Button onPress={this.onButtonPress} title=" 不可以点击 " color="red" disabled={true}/>
      </View>
    );
  }
}
  • 使用import加载项目所使用的模块,并且注册组件ButtonDemo成为整个应用的根容器。
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Button,
  View,
  Alert,
} from 'react-native';

AppRegistry.registerComponent('ButtonDemo', () => ButtonDemo);
  • 在终端中执行下面的命令运行程序,在iOS模拟器中可以看到显示的三个Button组件。
react-native run-ios

  • 当点击按钮时,会调用onPress()函数,即调用iOS的提醒框控件给用户展示提示信息。