react native Switch使用详解

Switch:开关控件
主要属性:

value:是否打开。默认为false
disabled:是否禁用 默认false
onTintColor:打开时背景色
thumbTintColor:圆形按钮的背景颜色
tintColor:关闭时的边框颜色(iOS)或者背景颜色(Android)。
onValueChange:value值发生变化时的回调,参数为当前Switch的值。

提示:如果想要切换Switch,必须改变value值,否则Switch保持不变。

Demo:

import React, {Component} from 'react';
import {
    StyleSheet,
    View,
    Switch,
    Text,
    Button,
} from 'react-native';

export default class SwitchDemo extends Component {

    state = {
        value: false,
        disabled: false,
        changeTxt:'切换Switch',
    }

    render() {
        return (
            <View style={{flex:1}}>
                <View style={{flexDirection:'row',paddingLeft:20}}>
                    <Button title={this.state.value?'关闭':'打开'}
                            onPress={()=>{this.setState({value:!this.state.value});}}></Button>
                    <Switch style={{marginLeft:20}} value={this.state.value} onTintColor='red' tintColor='blue'
                            thumbTintColor='black'/>
                </View>

                <View style={{flexDirection:'row',paddingLeft:20,marginTop:20}}>
                    <Button title={this.state.disabled?'启用':'禁用'}
                            onPress={()=>{this.setState({disabled:!this.state.disabled});}}></Button>
                    <Switch style={{marginLeft:20}} value={true} disabled={this.state.disabled}/>
                </View>

                <View style={{flexDirection:'row',paddingLeft:20,marginTop:20}}>
                    <Text>{this.state.changeTxt}</Text>
                    <Switch value={this.state.value} onValueChange={(value)=>{
                        this.setState({
                            value:value,
                            changeTxt:value?'switch 打开了':'switch 关闭了'
                        });


                    }}/>
                </View>

            </View>
        );
    }
}

效果图

这里写图片描述

github下载地址

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
React Native 中的路由可以使用以下几个库来实现: 1. React Navigation:React Navigation 是 React Native 中最流行的路由库之一,它提供了多种路由类型和导航器,例如 Stack Navigator(堆栈导航)、Tab Navigator(标签导航)和 Drawer Navigator(抽屉导航)等。 2. React Native Navigation:React Native Navigation 是一个由 Wix 开发的路由库,它提供了原生级别的性能和体验。它支持多个平台,并且提供了多种导航器及其配置选项。 3. React Native Router Flux:React Native Router Flux 是一个基于 React Navigation 的路由库,它提供了类似于 React Router 的 API,使用起来比较方便。 下面是一个使用 React Navigation 的示例: 首先安装 React Navigation: ``` npm install @react-navigation/native ``` 然后安装 Stack Navigator: ``` npm install @react-navigation/stack ``` 在 App.js 中配置 Stack Navigator: ```javascript import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack'; import HomeScreen from './screens/HomeScreen'; import DetailScreen from './screens/DetailScreen'; const Stack = createStackNavigator(); function App() { return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Detail" component={DetailScreen} /> </Stack.Navigator> </NavigationContainer> ); } export default App; ``` 在 HomeScreen.js 中实现页面跳转: ```javascript import React from 'react'; import { Button } from 'react-native'; import { useNavigation } from '@react-navigation/native'; function HomeScreen() { const navigation = useNavigation(); return ( <Button title="Go to detail screen" onPress={() => { navigation.navigate('Detail'); }} /> ); } export default HomeScreen; ``` 在 DetailScreen.js 中实现返回: ```javascript import React from 'react'; import { Button } from 'react-native'; import { useNavigation } from '@react-navigation/native'; function DetailScreen() { const navigation = useNavigation(); return ( <Button title="Go back" onPress={() => { navigation.goBack(); }} /> ); } export default DetailScreen; ``` 这样就完成了一个简单的路由示例,点击 HomeScreen 上的按钮可以跳转到 DetailScreen,DetailScreen 上的按钮可以返回 HomeScreen。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老孟Flutter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值