React Native中加載指示器組件ActivityIndicator使用方法

這里講一下React Native中的一個(gè)組件——ActivityIndicator,這是一個(gè)加載指示器,俗稱菊花,很常見的,效果如下所示:

image.png

可以看到圖中有兩個(gè)加載指示器,一大一小,這是尺寸不是我設(shè)置的,這個(gè)組件本身就有一個(gè)屬性是設(shè)置其大小的,兩個(gè)選項(xiàng),一大一小。這里順便就介紹一些該組件的屬性:

  • animating:這個(gè)參數(shù)接受布爾型的值,表示是否顯示加載指示器。
  • color:string型參數(shù),用來設(shè)置指示器的顏色,默認(rèn)是灰色的,我們一般也不管他。
  • hidesWhenStopped(僅iOS可用):在沒有動(dòng)畫的時(shí)候,是否要隱藏指示器(默認(rèn)為true)。
  • size:這就是設(shè)置尺寸的,就兩個(gè)選項(xiàng),small和large,一小一大。

能設(shè)置的就這幾個(gè)參數(shù),接下來我們看看這個(gè)例子。例子中有一個(gè)按鈕,控制了指示器的顯示和隱藏。按鈕我們用TouchableOpacity組件來實(shí)現(xiàn),這個(gè)組件可以添加一個(gè)響應(yīng)方法,下面我們放一小一大兩個(gè)指示器,代碼如下:

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

class RNActivityIndicatorDemo extends Component {

  constructor(props) {
    super(props);
    this.state = {// 初始設(shè)為顯示加載動(dòng)畫
      animating: true,
    };
  }

  // 按鈕響應(yīng)方法,切換顯示與隱藏
  showOrHide() {
    if (this.state.animating) {
      this.setState({
        animating: false
      });
    } else {
      this.setState({
        animating: true
      });
    }
  }

  render() {
    return (
      <View style={styles.container}>
      {/* 切換顯示或隱藏的按鈕 */}
        <TouchableOpacity underlayColor="#fff" style={styles.btn} onPress={
          this.showOrHide.bind(this)}>
            <Text style={{color:'#fff', fontSize: 20}}>顯示/隱藏</Text>
        </TouchableOpacity>
      {/* 小號(hào)的指示器 */}
        <ActivityIndicator
          animating={this.state.animating}
          style={[styles.centering, {height: 80}]}
          size="small" />
      {/* 大號(hào)的指示器 */}
        <ActivityIndicator
          animating={this.state.animating}
          style={[styles.centering, {height: 80}]}
          size="large" />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  centering: {
    alignItems: 'center',
    justifyContent: 'center',
    padding: 8,
  },
  btn:{
    marginTop:10,
    width:150,
    height:35,
    backgroundColor:'#3BC1FF',
    justifyContent:'center',
    alignItems:'center',
    borderRadius:4,
  },
});

AppRegistry.registerComponent('RNActivityIndicatorDemo', () => RNActivityIndicatorDemo);

看代碼,我們首先就在state中加了一個(gè)變量animating,用來控制指示器的顯示與隱藏,初始是顯示的。然后看我們的界面元素部分,即render中的部分,除了最外面一層view外,最上面就是一個(gè)TouchableOpacity,onPress屬性指向了一個(gè)響應(yīng)方法,即showOrHide方法,在這個(gè)方法中我們可以看到,很簡(jiǎn)單地實(shí)現(xiàn)了一個(gè)通過animating變量切換顯示與隱藏的功能。因此下面的ActivityIndicator元素中我們的animating屬性是用state中的animating變量來控制的,其余的屬性我們基本是默認(rèn)的,size一小一大,很簡(jiǎn)單的例子。

這里可以下載我的示例工程:https://github.com/Cloudox/RNActivityIndicatorDemo


查看作者首頁

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,983評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 對(duì)React-Native的學(xué)習(xí),從熟悉基本控件開始。 View 屬性方法 序號(hào)名稱屬性O(shè)r方法類型說明 1 ac...
    諾花生閱讀 923評(píng)論 0 0
  • 夜闌人靜時(shí),臥聽風(fēng)吹雨。因感念殊凰,故久久不能入眠。 林殊,穆霓凰。 腦海中各路思緒洶涌而來。上一秒仍是十三年前少...
    林阿雋閱讀 1,140評(píng)論 0 3
  • 背墻擠陽再聚首, 珍果蘭磨醉和春。 人生若得二三友, 猶續(xù)西中與夕陽! ——獻(xiàn)給西中93屆同學(xué)會(huì)快樂幸福的同學(xué)們和...
    徐大少黃石閱讀 212評(píng)論 0 1

友情鏈接更多精彩內(nèi)容