react native學習筆記15——Picker、Switch、Slider
阿新 • • 發佈:2019-02-01
本文將介紹三個常用的元件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 | 設定圓形部位的顏色 |