react native 加载中Loading

因为数据还未加载成功时,为了不让用户看到正在加载时的乱七八糟的页面,所在在页面数据未加载完时,在外面罩一层Loading。

实现图例:

图片.png

实现方法:
React Native 有一个 ProgressBarAndroid组件,封装了 Android 的 ProgressBar,我们可以直接用这个。

我将 Loading 直接封装成了一个组件,然后就可以在需要的时候调用。

Loading 组件:

import React, { Component } from 'react';
import {
    View,
    Text,
    ProgressBarAndroid,
    Modal,
} from 'react-native';

import styles from './styles';

export default class Loading extends Component {
    // 构造
    constructor(props) {
        super(props);
        // 初始状态
        this.state = {};
    }

    render() {

        return(
            <Modal
                transparent = {true}
                onRequestClose={()=> this.onRequestClose()}
            >
                <View style={styles.loadingBox}>
                    <ProgressBarAndroid styleAttr='Inverse' color='#FF4500' />
                </View>
            </Modal>
        );
    }

}

样式文件 styles.js

'use strict';
import { StyleSheet } from "react-native";
module.exports = StyleSheet.create({
    loadingBox: { // Loading居中
        flex:1,
        alignItems:'center’, 
        justifyContent:'center',
        backgroundColor:'rgba(0, 0, 0, 0.5)’, // 半透明
    }
});

这就已经实现了一个Loading界面了,接下来在需要用的地方引入就可以了。
首页使用:
首先需要先将该组件导入进来,然后用 state 状态来控制它的显示和隐藏。

图片.png

进入首页时,开始加载数据,当数据未加载完成时,Loading状态,当数据加载完成后,Loading隐藏。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,679评论 25 708
  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 46,913评论 22 665
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 柬埔寨的天气变化无常,今天早上出发的时候只是阴天,但是到了湖边之后风雨交加电闪雷鸣,我们等了近一个小时才坐上船开始...
    紫漠的梦想森林阅读 295评论 0 0
  • 妈妈是开小卖店的。因为妈妈这一段时间很忙,所以货架子上落满了灰尘。妈妈还没来得及打扫。今天终于有空啦!妈妈...
    张余蔚阅读 248评论 0 2