React Native实战开发11:使用ActivityIndicator制作一个loading效果

使用ActivityIndicator制作一个loading效果

在本课程里,我们将使用ActivityIndicator来制作一个loading效果,就是当app启动的时候,需要从AsyncStorage或者是云端API获取数据,在获取数据这段时间内,我们在app界面上显示一个loading效果,当数据获取成功(或者是失败)之后,这个loading效果自动消失。

导入ActivityIndicator

import {View, Text, StyleSheet, Platform, ListView, Keyboard, AsyncStorage, ActivityIndicator} from "react-native";

制作一个loading效果

我们将使用一个View来包含一个ActivityIndicator配合StyleSheet来实现这个loading效果。

<View style={styles.loading}>
  <ActivityIndicator
    size="large"
    animating
  />
</View>

这个styles.loading实现如下:

loading: {
  position: "absolute",
  top: 0,
  left: 0,
  right: 0,
  bottom: 0,
  alignItems: "center",
  justifyContent: "center",
  backgroundColor: "rgba(0,0,0,0.2)"
}

效果如下:

自动显示和消失

我们希望在app启动的时候,这个loading效果自动出现,load完成之后自动消失。我们可以使用一个state值来实现这一点。

增加一个state变量loading,初始值为true,表示一开始要出现loading

this.state = {
  loading: true,
  filter: "ALL",
  value: "",
  items: [],
  dataSource: ds.cloneWithRows([])
};

然后我们在load数据完成后将这个state值设置为false

componentWillMount() {
  AsyncStorage.getItem("items").then(json => {
    try {
      const items = JSON.parse(json);
      this.setSource(items, items, {loading: false});
    } catch (e) {
      this.setState({loading: false});
    }
  });
}

最后,我们使用这个state.loading变量来判断是否要显示这个loading View。

{this.state.loading && <View style={styles.loading}>
  <ActivityIndicator
    size="large"
    animating
  />
</View>}

本节代码:https://github.com/zhiwehu/todo/tree/ActivityIndicator

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,321评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,302评论 19 139
  • 刚刚回答了一个问题,可能迷惘的不止是这一个九零后吧。 问题:今年二十七了,标准的九零后,十六岁就开始踏入社会,十一...
    佛爷的梦想阅读 4,101评论 9 7
  • 每一次遇见呀 就像一场梦 一场 自导自演 无疾而终的 梦 一段 温涩 沉默的 梦 是梦呀 那翩然离去的 梦里的人 ...
    叶公籽阅读 1,301评论 0 3
  • 邓艾,字士载,三国时期魏国的名将。艾领兵打仗,善于利用地理克敌制胜。 艾幼年素有大志,但见高山大泽,皆暗记于心,归...
    秋山秋水阅读 3,923评论 0 0

友情链接更多精彩内容