1. 程式人生 > >react native學習筆記15——Picker、Switch、Slider

react native學習筆記15——Picker、Switch、Slider

本文將介紹三個常用的元件Picker、Switch、Slider,它們都是官方提供的,並且均可以在android與ios渲染對應的原生元件。這三個元件的使用很簡單,在實戰開發中也很常見,因此這裡放在一起介紹。

Picker選擇器

Picker選擇器,通常可用作下拉選單,城市選擇器等。
其使用方法如下:

import React, { Component } from 'react';
import { AppRegistry, Text, View,Picker } from 'react-native';

export default class PickerDemo extends Component {
    constructor(props) {
        super(props);
        this
.state ={ language:null, }; } render() { return ( <Picker selectedValue={this.state.language} onValueChange={(lang) => this.setState({language: lang})} style={{width:200}} > <Picker.Item
label="Java" value="java" />
<Picker.Item label="JavaScript" value="js" /> </Picker> ); } }

效果圖

屬性方法

屬性 型別 描述
onValueChange function 當選擇器item被選中時呼叫,可傳兩個引數:選擇的value和position
selectedValue any 選擇器預設選中的值,可以是字串或數字
enabled(android) bool
mode(android) enum (‘dialog’,’dropdown’) 設定樣式, ‘dropdown’下拉樣式和’dialog’彈窗樣式,預設是dialog
prompt(android) string 設定Picker標題,並且只有是mode為dialog才會顯示
itemStyle(ios) itemStylePropType 設定每一項的樣式

Switch開關按鈕

Switch開關,用於開/關兩種狀態的選擇元件。
其使用方法如下:

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

export default class SwitchDemo extends Component {
    constructor(props) {
        super(props);
        this.state ={
            switchState1: true,
            switchState2: false,
        };
    }

    render() {
        return (
            <View style={styles.container}>
                <Switch style={{marginTop:10, marginBottom:10, backgroundColor:'transparent'}}
                        value={this.state.switchState1}
                        onValueChange={ (value) => this.setState({switchState1:value}) }
                        onTintColor='red'
                        thumbTintColor='yellow'
                        tintColor='orange'
                />
                <Switch value={this.state.switchState2}
                        onValueChange={ (value) => this.setState({switchState2:value})}
                />
            </View>
        );
    }
}

const styles = StyleSheet.create({
    container: {
        justifyContent:'center',
        alignItems:'center',
        backgroundColor:'white',
        flex: 1
    },
});

效果圖

屬性方法

屬性 型別 描述
disabled bool 是否禁用開關元件,預設是false
onValueChange function 當元件狀態值發生變化的時候回撥
value bool 該開關的值,如果為true呈開啟狀態,預設false
onTintColor color 開關開啟狀態背景顏色
thumbTintColor color 開關圓形部位的顏色
tintColor color 開關關閉狀態背景顏色

Slider滑動條

Slider滑動條,用於選擇一個範圍值的元件。
其使用方法如下:

import React, { Component } from 'react';
import { AppRegistry, Text, View,Slider,StyleSheet } from 'react-native';

export default class SwitchDemo extends Component {
    constructor(props) {
        super(props);
        this.state ={
            value:0,
        };
    }
    render() {
        return (
            <View style={{flex:1}}>
                <Slider />
                <Slider disabled={true}/>
                <Slider value={0.3} maximumTrackTintColor='black'/>
                <Slider value={0.4} minimumTrackTintColor='red'/>
                <Slider value={0.5} style={{borderWidth:1,borderColor:'red'}}/>
                <Text>{this.state.value}</Text>
                <Slider minimumValue={5} maximumValue={20} onValueChange={(value)=>{this.setState({value:value})}} onSlidingComplete={(value)=>{this.setState({value:value})}}/>
                <Slider thumbTintColor="red"  step={0.2}/>
            </View>
        );
    }
}

效果圖

屬性方法

屬性 型別 描述
disabled bool 是否禁用該元件,預設是false
maximumValue number 滑動條最大值。預設為1
minimumValue number 滑動條最小值,預設為0
onSlidingComplete function 當用戶結束滑動的時候回撥此方法
onValueChange function 當用戶在滑動過程中持續回撥此方法
step number 滑動條的最小單位。這個值應該在0到(maximumValue - minimumValue)之間。預設為0
value number 滑動條選擇的值。這個值應該在最小值和最大值之間,它們的預設值分別為0和1。預設值為0
thumbImage Image.propTypes.source 給滑塊設定一張圖片。只支援靜態圖片
trackImage Image.propTypes.source 給軌道設定一張背景圖。只支援靜態圖片。圖片最中央的畫素會被平鋪直至填滿軌道
thumbTintColor(android) ColorPropType 設定圓形部位的顏色