前端江太公


React Native,是一个混合移动应用开发框架,是目前流行的跨平台移动应用开发框架之一。React Native 采用不同的方法进行混合移动应用开发。它不会生成原生 UI 组件,而是基于 React,React Native
是一个用于构建基于 Web 的交互界面的 JavaScript 库,因此会有更丰富的 UI 体验效果,同时也能够很好地调用底层框架的UI使用。

React Native系列导航
01-React Native 基础教程
02-安装ReactNative
03-ReactNative目录结构
04-ReactNative视图View
05-ReactNative组件样式style
06-ReactNative文本组件Text
07-ReactNative组件状态state
08-ReactNative组件属性props
09-ReactNative输入组件TextInput
10-ReactNative图片组件Image
11-ReactNative活动指示器组件
12-ReactNative弹出框Alert
13-ReactNative存储数据组件AsyncStorage
14-ReactNative动画组件Animated
15-ReactNative开关组件Switch
16-状态栏组件StatusBar
17-ReactNative滚动视图ScrollView
18-ReactNative选择器Picker
19-ReactNative网络请求

React Native 开关组件 Switch

如果要在两个值之间切换,或者要在两个状态之间切换,我们可以使用 React Native 提供的 开关组件 Switch

开关组件,顾名思义,就像我们日常电灯的开关一样:按一下开,再按一下关,再按一下又开

开关组件 Switch 在 Android 端的样式如下

React Native 开关组件 Switch

引入组件

import { Switch } from 'react-native'

使用语法

<SwitchonValueChange = {function(value){}}thumbColor    = {color}trackColor    = {{false:color,true:color}}onChange      = {function(event){}}value         = {true|false}/>

Switch 只有两个值 truefalse,都是布尔类型。

  • true 表示开关的 状态。
  • false 表示开关的 状态,默认值。

这两个值是固定的,我们不能变更。

如果我们要改变开关的初始状态,可以使用 value 属性来设置初始值,不过只能设置为 truefalse

注意:value 是必填属性,如果不设置,开关的状态看起来用于处于 状态。

Switch 还有两个事件回调函数 onValueChangeonChange。前者当开关的值发生改变时触发,参数是 开关变更后的新值。 后者当用户尝试改变开关状态时触发,参数是 事件

开关的外观基本是固定的,我们不能改变,唯一能做的就是改变颜色。这里有三个颜色可以改变,一个是导轨的颜色,分为 状态下导轨的颜色和 状态下导轨的颜色。还有一个是 滑块 的颜色。

因此,如果你要设置导轨的颜色,需要传递一个对象,格式如下

{false:color,true:color}

例如

{false:'#eeeeee',true:'#333333'}

当开关处于开状态下时的导轨颜色为 #333333,处于关状态下时的颜色为 #eeeeee

范例 1 : 最基本的使用

React Native Switch 最基本的使用,仅仅作为状态展示组件,那么只需要一个属性即可,那就是 value 用于设置开关的初始值。

App.js

import React, { Component } from 'react'
import { View, Text, Switch, StyleSheet } from 'react-native'export default class App  extends Component {constructor() {super();this.label = {false:'关',true:'开'}this.state = {switch1Value: true,}}render() {return (<View style = {styles.container}><Switch  value= {this.state.switch1Value} /><View><Text>Switch 当前的状态是:{this.label[this.state.switch1Value]}</Text></View></View>)}
}const styles = StyleSheet.create ({container: {flex: 1,alignItems: 'center',marginTop: 100}
})

运行效果如下,这时候无论怎么切换状态,都是处于 的状态。

范例 1 : 可响应状态变更

Switch 组件如果要响应我们的触摸操作,就需要使用 onValueChange 来设置 value 的值。

App.js

import React, { Component } from 'react'
import { View, Text, Switch, StyleSheet } from 'react-native'export default class App  extends Component {constructor() {super();this.label = {false:'关',true:'开'}this.state = {switch1Value: true,}}toggleSwitch = (value) => {this.setState({switch1Value: value})}render() {return (<View style = {styles.container}><Switch onValueChange = {this.toggleSwitch} value= {this.state.switch1Value} /><View><Text>Switch 当前的状态是:{this.label[this.state.switch1Value]}</Text></View></View>)}
}const styles = StyleSheet.create ({container: {flex: 1,alignItems: 'center',marginTop: 100}
})

演示效果如下

范例3 :定制外观

如果我们还需要对外观的颜色加以定制,可以设置 thumbColortrackColor

比如说我们要将 Switch 的外观定制为下面的样子。

可以设置属性

<SwitchthumbColor    = {"#000000"}trackColor    = {{false:"#eeeeee",true:"#999999"}}
/>

App.js

import React, { Component } from 'react'
import { View, Text, Switch, StyleSheet } from 'react-native'export default class App  extends Component {constructor() {super();this.label = {false:'关',true:'开'}this.state = {switch1Value: true,}}toggleSwitch = (value) => {this.setState({switch1Value: value})}render() {return (<View style = {styles.container}><Switch thumbColor={"#000000"}trackColor={{false:"#eeeeee",true:"#999999"}}onValueChange = {this.toggleSwitch} value= {this.state.switch1Value} /><View><Text>Switch 当前的状态是:{this.label[this.state.switch1Value]}</Text></View></View>)}
}const styles = StyleSheet.create ({container: {flex: 1,alignItems: 'center',marginTop: 100}
})

h1Value]}

)
}
}

const styles = StyleSheet.create ({
container: {
flex: 1,
alignItems: ‘center’,
marginTop: 100
}
})


演示

移动跨平台ReactNative开关组件Switch【15】相关推荐

  1. 移动跨平台ReactNative动画组件Animated【14】

    前端江太公 React Native,是一个混合移动应用开发框架,是目前流行的跨平台移动应用开发框架之一.React Native 采用不同的方法进行混合移动应用开发.它不会生成原生 UI 组件,而是 ...

  2. rn 开关组件Switch

    1.引入import { View, Switch, StyleSheet } from "react-native";2.使用<SwitchtrackColor={{ fa ...

  3. 移动跨平台框架ReactNative图片组件Image【10】

    前端江太公 React Native,是一个混合移动应用开发框架,是目前流行的跨平台移动应用开发框架之一.React Native 采用不同的方法进行混合移动应用开发.它不会生成原生 UI 组件,而是 ...

  4. 手撸一个Switch开关组件

    一.前言 手撸系列又来了,这次咱们来撸一个Switch开关组件,废话不多说,咱们立刻发车. 二.使用效果 三.实现分析 首先我们先不想它的这个交互效果,我们就实现"不合格"时的一个 ...

  5. 跨平台工具、组件和框架的汇总

    本文主要是对跨平台工具.组件和框架的汇总,包括游戏引擎.编程语言.移动开发.网络通信.图形界面等等 Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者建立 ...

  6. 微信Switch组件-switch按钮

    今天我们来探讨switch开关选择器是如何实现的,演示效果如下: 未启动状态: 启动后状态: 基本思路: 将表单元素checkbox进行重新定义,-webkit-appearance就是为了重新定义而 ...

  7. 神了!!看完这篇文章我不仅学会了手撸vue三开关组件,还搞懂了父子组件传值

    神了!!看完这篇文章我不仅学会了手撸vue三开关组件,还搞懂了父子组件传值 引子 前置知识 什么是vue组件 父子组件传值 父传子 子传父 model选项的引入 三开关组件(three-switch) ...

  8. android万能开关,Android原生开关组件

    Android原生Switch 众所周知,Android原生提供了两种开关组件,toggleButton和Switch,这两个因为仿苹果的原因我很少使用.真正用到项目里大概也就两次,体验并不好,最近被 ...

  9. 如何自己撸一个简单的开关组件

    之前使用开关的时候你肯定会想到Google原生提供的switch. 最近一直想自己写一个Q弹简单的开关组件,说干就干.经过一小个晚上的奋战,效果如下.这里分别实现了两种Q弹简单的开关组件,一个圆形开关 ...

最新文章

  1. 使用密钥验证方式登录linux系统
  2. 中getname_Spring IOC中的灵魂伴侣:BeanFactory ApplicationContext
  3. Spring5参考指南:容器扩展
  4. python加载html表格数据,使用python 3.6获取html表格行数据美丽的汤
  5. php cdi_DI / CDI –基础
  6. 前百度主任架构师创业,两年融资千万美元,他说 AI 新药研发将迎来黄金十年...
  7. 如何去除chrome最常访问的网页
  8. NET4.0新功能之String.IsNullOrWhiteSpace() 方法
  9. 苹果手机充电口接触不良怎么办_用了HOU吼猴3C数码配件让手机充电口不再接触不良...
  10. ubuntu进入桌面自动启动脚本_Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法...
  11. 常用傅里叶变换及其性质
  12. 山科OJ:Problem C: Lemon
  13. 云备份的正确打开方式,你学会了吗?
  14. 第三届“拳头奖”投票进行时 Devstore志在必得
  15. android中终端命令大全,Android系统在超级终端下必会的命令大全(八)
  16. amd芯片服务器,服务器芯片 AMD 64核对决Intel 56核
  17. 考研概率论与数理统计(知识点梳理)
  18. 需求规格说明书和软件概要设计文档最终版上线~
  19. ThinkPad笔记本风扇转速控制软件
  20. 联想电脑 关闭打开机盖自动开机功能

热门文章

  1. 修改jupyter notebook的工作路径和起始位置
  2. 免费在线接线图软件 + 示例
  3. png转成SVG方法
  4. mac m1上esc键失灵不能退出vi解决方法
  5. python外包挺多,但具体什么价位呢,今天我们来采集一下外包网~
  6. 深度学习目标检测方法汇总
  7. 基于小波分析与深度学习的脑电信号分类(matlab)
  8. Flash Builder常见菊紧问题集锦
  9. Threejs围墙动画
  10. 如何一日千里 突飞猛进?