移动跨平台ReactNative开关组件Switch【15】,聪明人已经收藏了

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

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

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

React Native 开关组件 Switch on

React Native 开关组件 Switch


引入组件

import { Switch } from ‘react-native’

使用语法

<Switch

onValueChange = {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 (

<Switch

value= {this.state.switch1Value}

/>

Switch 当前的状态是:{this.label[this.state.switch1Value]}

)

}

}

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 (

<Switch

onValueChange = {this.toggleSwitch}

value= {this.state.switch1Value}

/>

Switch 当前的状态是:{this.label[this.state.switch1Value]}

)

}

}

const styles = StyleSheet.create ({

container: {

flex: 1,

alignItems: ‘center’,

marginTop: 100

}

})

演示效果如下

范例3 :定制外观


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

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

React Native 开关组件 Switch on

可以设置属性

<Switch

thumbColor = {“#000000”}

trackColor = {{false:“#eeeeee”,true:“#999999”}}

/>
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

分享一些简单的前端面试题以及学习路线给大家,狂戳这里即可免费领取

频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

分享一些简单的前端面试题以及学习路线给大家,狂戳这里即可免费领取

[外链图片转存中…(img-XJx72ARQ-1712381839625)]

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值