前言


  • 遗漏的常用组件,刚发现官方有提供,这边也来介绍一下。
  • 如本文有错或理解偏差欢迎联系我,会尽快改正更新!
  • 如有什么问题,也可直接通过邮箱 277511806@qq.com 联系我。

本章涉及资源下载:

链接: https://pan.baidu.com/s/1o84o6JS 密码: htx6

属性


  • animationType(动画类型) PropTypes.oneOf(['none', 'slide', 'fade'])

    • none:没有动画
    • slide:从底部滑入
    • fade:淡入视野
  • onRequestClose(被销毁时会调用此函数)Platform.OS ==='android'?PropTypes.func.isRequired:PropTypes.func

    • 在 'Android' 平台,必需使用此函数
  • onShow(模态显示的时候被调用)function

  • transparent (透明度) bool

    • true时,使用透明背景渲染模态。
  • visible(可见性) bool

    • 决定模态是否可见
  • onOrientationChange(方向改变时调用)PropTypes.func

    • 在模态方向变化时调用,提供的方向只是 '' 或 ''。在初始化渲染的时候也会调用,但是不考虑当前方向。
  • supportedOrientations(允许模态旋转到任何指定取向)PropTypes.arrayOf(PropTypes.oneOf(['portrait', 'portrait-upside-down', 'landscape','landscape-left','landscape-right']))

    • 在iOS上,模态仍然受 info.plist 中的 UISupportedInterfaceOrientations字段中指定的限制。

modal 基本使用


  • modal的使用很广泛,这边我们来看看怎么让视图以模态的形式展示:

    	export default class One extends Component {
    
    	    // 构造
    constructor(props) {
    super(props);
    // 初始状态
    this.state = {
    isModal:false
    };
    } showModal() {
    this.setState({
    isModal:true
    })
    } onRequestClose() {
    this.setState({
    isModal:false
    });
    } render() {
    return(
    <View style={styles.container}>
    {/* 初始化Modal */}
    <Modal
    animationType='slide' // 从底部滑入
    transparent={false} // 不透明
    visible={this.state.isModal} // 根据isModal决定是否显示
    onRequestClose={() => {this.onRequestClose()}} // android必须实现
    >
    <View style={styles.modalViewStyle}>
    {/* 关闭页面 */}
    <TouchableOpacity
    onPress={() => {{
    this.setState({
    isModal:false
    })
    }}}
    >
    <Text>关闭页面</Text>
    </TouchableOpacity>
    </View>
    </Modal> {/* 返回按钮 */}
    <TouchableOpacity
    onPress={() => {{
    this.props.navigator.pop()
    }}}
    >
    <Text>返回</Text>
    </TouchableOpacity> {/* 模态跳转 */}
    <TouchableOpacity
    onPress={() => this.showModal()}
    >
    <Text>模态跳转</Text>
    </TouchableOpacity>
    </View>
    );
    }
    }

modal 使用 —— 指示器


  • 这边我们再来做一个经常使用的功能 —— 指示器

    	export default class One extends Component {
    
    	    // 构造
    constructor(props) {
    super(props);
    // 初始状态
    this.state = {
    isModal:false
    };
    } showModal() {
    this.setState({
    isModal:true
    }) setTimeout(() => {
    this.setState({
    isModal:false
    });
    }, 1500)
    } onRequestClose() {
    this.setState({
    isModal:false
    });
    } render() {
    return(
    <View style={styles.container}>
    {/* 初始化Modal */}
    <Modal
    animationType='fade' // 淡入淡出
    transparent={true} // 透明
    visible={this.state.isModal} // 根据isModal决定是否显示
    onRequestClose={() => {this.onRequestClose()}} // android必须实现
    >
    <View style={styles.modalViewStyle}>
    <View style={styles.hudViewStyle}>
    <ActivityIndicator style={styles.chrysanthemumStyle}></ActivityIndicator>
    <Text style={styles.hudTextStyle}>加载中…</Text>
    </View>
    </View>
    </Modal> {/* 返回按钮 */}
    <TouchableOpacity
    onPress={() => {{
    this.props.navigator.pop()
    }}}
    >
    <Text>返回</Text>
    </TouchableOpacity> {/* 显示指示器 */}
    <TouchableOpacity
    onPress={() => this.showModal()}
    >
    <Text>显示指示器</Text>
    </TouchableOpacity>
    </View>
    );
    }
    }

总结


  • modal 的源码可以看出,modal 其实就是使用了 绝对定位,所以当 modal 无法满足我们的需求的时候,我们就可以通过 绝对定位 自己来封装一个 modal 了,对吧,时间关系,这边就不讲了,大伙自己试试就可以了。

React-Native 之 Modal介绍与使用的更多相关文章

  1. React Native之 ScrollView介绍和使用

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  2. React Native 之 Touchable 介绍与使用

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  3. React Native之FlexBox介绍和使用

    # 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会 ...

  4. React Native项目组织结构介绍

    代码组织: 目录结构: . ├── components //组成应用的各个组件 │   ├── Routers.android.js //每个组件若实现不一样,分为android的实现和ios的实现 ...

  5. React Native 之 组件化开发

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  6. 使用Visual Studio Code和typescript 开发调试React Native项目

    关于React Native的详细介绍我就不叙述了,他是使用js构建原声app的开发框架.一次变异多平台运行,非常强大.但是个人不喜欢js的过于灵活(弱类型)的语法.强大的强类型语言Typescrip ...

  7. React Native 教程:001 - 如何运行官方控件示例 App

    原文发表于我的技术博客 本文主要讲解了如何运行 React Native 官方控件示例 App,包含了一些 React Native 的基础知识以及相关环境的配置. 原文发表于我的技术博客 React ...

  8. React Native从入门到放弃之环境搭建

    官网 https://facebook.github.io/react-native/ 中文网站 http://reactnative.cn/ 相关文档 http://www.lcode.org/史上 ...

  9. React Native创建一个APP

    React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽 ...

  10. React Native v0.4 发布,用 React 编写移动应用

    React Native v0.4 发布,自从 React Native 开源以来,包括超过 12.5k stars,1000 commits,500 issues,380 pull requests ...

随机推荐

  1. 类Unix平台程序调试

    GNU Binutils GNU Binutils 建立main.c文件,内容如下: #include <stdio.h> void main() { int a = 5/0; } 编译m ...

  2. BZOJ:3911: SGU383 Caravans(三角剖分)

    原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3911 直接求最小生成树显然边太多,考虑少用点边. 连出来的边肯定是没相交的,我们需要做一下 ...

  3. 51Nod 1277 字符串中的最大值(KMP,裸题)

    1277 字符串中的最大值 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 一个字符串的前缀是指包含该字符第一个字母的连续子串,例如: ...

  4. 从parcel.js打包出错,到拥抱nvm

    去年年底发布的parcel.js在年底可谓是火了一把,短短一个多月的时间在GitHub热门排行榜上名列前茅.因其几乎零配置的易用性,相比Webpack的复杂配置收获了大量关注及好评,甚至有人预言未来大 ...

  5. linux 下CentOS 下 npm命令安装gitbook失败的问题

    运行环境 linux 服务器:CentOS 7.0 系统:安装了nodejs :使用 npm 安装 gitbook 出现错误提示: npm install -g gitbook-cli symbol ...

  6. 详解 Vue 2.4.0 带来的 4 个重大变化

    在这篇文章中,我将跟大家分享4个有突破性新特性. 服务端渲染异步组件 包裹组件内实现属性继承 异步组件支持webpack3 组件渲染后可保留HTML注释 1.服务端渲染异步组件 在vue2.4.0以前 ...

  7. C语言mktime()

    最近在调试stm32L151单片机,因为业务需要将从RTC获取的时间转换成时间戳.转换的时候发现获取的时间一直不对.一直被两个问题困扰. 1.从RTC获取出来的月份为什么比实际月份小1? 2.转换得来 ...

  8. 调用QQ聊天功能

    [HTML]: <a href="javascript:void(0);" onclick="chatQQ()">咨询客服</a> fu ...

  9. [SinGuLaRiTy] Nescafe 24杯模拟赛

    [SinGularLaRiTy-1044] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 小水塘(lagoon) 题目描述 忘川沧月的小水塘 ...

  10. Android知识点剖析系列:深入了解layout_weight属性

    摘录自:http://www.cnblogs.com/net168/p/4227144.html 前言 Android中layout_weight这个属性对于经常捣鼓UI的我们来说,肯定不会陌生.但是 ...