1. 程式人生 > >【React Native開發】React Native控制元件之Switch開關與Picker選擇器元件講解以及使用(16)

【React Native開發】React Native控制元件之Switch開關與Picker選擇器元件講解以及使用(16)

轉載請標明出處:

()前言

       【好訊息】個人網站已經上線執行,後面部落格以及技術乾貨等精彩文章會同步更新,請大家關注收藏:http://www.lcode.org 

      今天我們一起來看一下Switch選擇開關控制元件以及Picker選擇器控制元件的介紹完全解析以及最佳實踐。

剛建立的React Native技術交流3群(496508742),React Native技術交流4群(458982758),請不要重複加群!歡迎各位大牛,React Native技術愛好者加入交流!同時部落格左側歡迎微信掃描關注訂閱號,移動技術乾貨,精彩文章技術推送!

()Switch選擇開關控制元件

         2.1.

該為Android/iOS兩個平臺通用的兩種狀態的選擇開關元件

         2.2.Switch屬性方法介紹(這邊只介紹平臺通用屬性以及只適合Android平臺上面的屬性方法)

  • View相關屬性樣式全部繼承(例如:寬和高,背景顏色,邊距等相關屬性樣式)
  • disabled bool 如果該值為true,使用者就無法點選switch開關控制元件,預設為false
  • onValueChange function 方法,當該元件的狀態值發生變化的時候回撥方法
  • value bool 該開關的值,如果該值為true的時候,開關呈開啟狀態,預設為false

          2.3.Switch使用例項

.Switch關控制元件例項演示,新增點選開關狀態切換,例項程式碼如下:

'use strict';
import React, {
  AppRegistry,
  Component,
  StyleSheet,
  Text,
  View,
  Switch,
} from'react-native';
var SwitchDemo =React.createClass({
  getInitialState() {
    return {
      trueSwitchIsOn: true,
      falseSwitchIsOn: false,
    };
  },
  render() {
    return (
      <View style={styles.container}>
        <Text>
           Swtich例項
        </Text>
        <Switch
          onValueChange={(value) =>this.setState({falseSwitchIsOn: value})}
         style={{marginBottom:10,marginTop:10}}
          value={this.state.falseSwitchIsOn}/>
        <Switch
          onValueChange={(value) =>this.setState({trueSwitchIsOn: value})}
          value={this.state.trueSwitchIsOn}/>
      </View>
    );
  }
});
const styles =StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
});
AppRegistry.registerComponent('SwitchDemo',() => SwitchDemo);

執行效果如下:


.Switch關控制元件設定無法點選狀態,該第一個Switch無法響應點選狀態,例項程式碼如下:

var SwitchDemo =React.createClass({
  getInitialState() {
    return {
      trueSwitchIsOn: true,
      falseSwitchIsOn: false,
    };
  },
  render() {
    return (
      <View style={styles.container}>
        <Text>
           Swtich例項
        </Text>
        <Switch
          disabled={true}
          onValueChange={(value) =>this.setState({falseSwitchIsOn: value})}
         style={{marginBottom:10,marginTop:10}}
          value={this.state.falseSwitchIsOn}/>
        <Switch
          disabled={false}
          onValueChange={(value) =>this.setState({trueSwitchIsOn: value})}
          value={this.state.trueSwitchIsOn}/>
      </View>
    );
  }
});

效果執行如下:


()Picker選擇器控制元件

          2.1.Picker渲染iOSAndroid平臺上面的原生選擇器元件,官方例項程式碼如下:

<Picker
  selectedValue={this.state.language}
  onValueChange={(lang) =>this.setState({language: lang})}>
  <Picker.Item label="Java" value="java" />
  <Picker.Item label="JavaScript" value="js" />
</Picker>

         2.2.Picker屬性方法(這邊只介紹平臺通用屬性以及只適合Android平臺上面的屬性方法)

  • View相關屬性樣式全部繼承(例如:寬和高,背景顏色,邊距等相關屬性樣式)
  • onValueChange  function方法,當選擇器item被選擇的時候進行呼叫。該方法被呼叫的時候回傳入一下兩個引數

itemValue:該屬性值為被選中的item的屬性值

itemPosition:該選擇器被選中的item的索引position

  • selectedValue: any任何引數值,選擇器選中的item所對應的值,該可以是一個字串或者一個數字
  • style pickerStyleType 該傳入style樣式,設定picker的樣式風格
  • enabled bool 如果該值為false,picker就無法被點選選中。例如:使用者無法進行做出選擇
  • mode enum ('dialog','dropdown')  選擇器模式。在Android平臺上面,設定mode可以控制使用者點選picker彈出的樣式風格

'dialog': 該值為預設值,進行彈出一個模態dialog(彈出框)

'dropdown':picker檢視為基礎,在該檢視下面彈出下拉框

  • prompt string  設定picker的提示語(標題),在Android平臺上面,模式設定成'dialog',顯示彈出框的標題

          3.3.Picker使用例項

.礎選擇器控件例項:彈出框,例項程式碼如下:

'use strict';
import React, {
  AppRegistry,
  Component,
  StyleSheet,
  Text,
  View,
  Picker,
} from'react-native';
var PickerDemo =React.createClass({
   getInitialState: function() {
    return {
      language: '',
    };
  },
  render() {
    return (
      <View style={styles.container}>
        <Text >
          Picker選擇器例項
        </Text>
        <Picker
          style={{width:200}}
          selectedValue={this.state.language}
          onValueChange={(value) =>this.setState({language: value})}>
          <Picker.Itemlabel="Java" value="java" />
          <Picker.Itemlabel="JavaScript" value="javaScript" />
        </Picker>
        <Text>當前選擇的是:{this.state.language}</Text>
      </View>
    );
  }
});
const styles =StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
});
AppRegistry.registerComponent('PickerDemo',() => PickerDemo);

執行效果如下:


 

.礎選擇器控件例項:設定彈出框標題,例項程式碼如下:

var PickerDemo =React.createClass({
   getInitialState: function() {
    return {
      language: '',
    };
  },
  render() {
    return (
      <View style={styles.container}>
        <Text >
          Picker選擇器例項
        </Text>
        <Picker
          prompt="請選擇程式語言"
          style={{width:200}}
          selectedValue={this.state.language}
          onValueChange={(value) =>this.setState({language: value})}>
          <Picker.Itemlabel="Java" value="java" />
          <Picker.Itemlabel="JavaScript" value="javaScript" />
        </Picker>
        <Text>當前選擇的是:{this.state.language}</Text>
      </View>
    );
  }
});

執行效果如下:


.礎選擇器控件例項:設定下拉選擇框,例項程式碼如下:

var PickerDemo =React.createClass({
   getInitialState: function() {
    return {
      language: '',
    };
  },
  render() {
    return (
      <View style={styles.container}>
        <Text >
          Picker選擇器例項
        </Text>
        <Picker
          mode={'dropdown'}
          style={{width:200}}
          selectedValue={this.state.language}
          onValueChange={(value) =>this.setState({language: value})}>
          <Picker.Itemlabel="Java" value="java" />
          <Picker.Itemlabel="JavaScript" value="javaScript" />
        </Picker>
        <Text>當前選擇的是:{this.state.language}</Text>
      </View>
    );
  }
});

執行效果如下:


()最後總結

今天我們主要學習一下Switch選擇開關控制元件以及Picker選擇器控制元件的介紹完全解析以及最佳實踐。大家有問題可以加一下群React Native技術交流群(282693535)或者底下進行回覆一下。

       關注我的訂閱號(codedev123),每天分享移動開發技術(Android/IOS),專案管理以及部落格文章!(歡迎關注,第一時間推送精彩文章)

     關注我的微博,可以獲得更多精彩內容