当前位置:首页 > 日记 > 正文

React-Native 组件之 Modal的使用详解

React-Native 组件之 Modal的使用详解

Modal组件可以用来覆盖包含React Native根视图的原生视图(如UIViewController,Activity),用它可以实现遮罩的效果。

属性

Modal提供的属性有:

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

  • none:没有动画
  • slide:从底部滑入
  • fade:淡入视野

onRequestClose(被销毁时会调用此函数)

在 ‘Android' 平台,必需调用此函数

onShow(模态显示的时候被调用)

transparent (透明度) bool

为true时,使用透明背景渲染模态。

visible(可见性) bool

onOrientationChange(方向改变时调用)

在模态方向变化时调用,提供的方向只是 ” 或 ”。在初始化渲染的时候也会调用,但是不考虑当前方向。

supportedOrientations(允许模态旋转到任何指定取向)[‘portrait', ‘portrait-upside-down', ‘landscape','landscape-left','landscape-right'])

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

示例

Modal的使用非常简单,例如:

<Modal animationType='slide'      // 从底部滑入  transparent={false}       // 不透明 visible={this.state.isModal}  // 根据isModal决定是否显示 onRequestClose={() => {this.onRequestClose()}} // android必须实现 >

综合例子:

import React, { Component} from 'react';import {  AppRegistry,  View,  Modal,  TouchableOpacity,  Text} from 'react-native';export default class ModalView extends Component {  constructor(props) {    super(props);    this.state = {      modalVisible: false,    }  }  setModalVisible = (visible)=> {    this.setState({      modalVisible: visible    })  };  render(){    return(      <View style={{flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#ffaaff'}}>        <Modal animationType={'none'}            transparent={true}            visible={this.state.modalVisible}            onrequestclose={() => {alert("Modal has been closed.")}}            onShow={() => {alert("Modal has been open.")}}            supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}            onOrientationChange={() => {alert("Modal has been OrientationChange.")}}>          <View style={{flex:1, marginTop: 22, backgroundColor: '#aaaaaa', justifyContent: 'center', alignItems: 'center'}}>            <View>              <Text>Hello World!</Text>              <TouchableOpacity onPress={() => {                this.setModalVisible(false)              }}>                <Text>隐藏 Modal</Text>              </TouchableOpacity>            </View>          </View>        </Modal>        <TouchableOpacity onPress={() => {          this.setModalVisible(true)        }}>          <Text>显示 Modal</Text>        </TouchableOpacity>      </View>    )  }}AppRegistry.registerComponent('ModalView', ()=>ModalView);

 运行效果:

从 modal 的源码可以看出,modal 其实就是使用了 绝对定位,所以当 modal 无法满足我们的需求的时候,我们就可以通过 绝对定位 自己来封装一个 modal

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

PS怎么使用滤镜给制作油画效果?

PS怎么使用滤镜给制作油画效果?

滤镜,效果,电脑软件,PS,在使用图像处理软件Photoshop时,新学者有时制作一张油画效果的图片。那么,PS中如何对图片如何制作出油画效果?作为制作出油画效果操作实例,这里用一张卡通风景的图片进行油画效果的制作。参考以下几个步骤。就很快可以在…

wps中怎么取消只读模式教程

wps中怎么取消只读模式教程

只读,取消,模式,教程,方法,  我们都知道可以在wps文字中设置文档为只读模式,如果我们想取消只读模式,应该怎样取消呢?对于新手来说还是有一定难度,怎么办?下面就让小编告诉你在wps文字中怎样取消只读模式的方法,希望对大家有所帮助。wps取消…

CDR怎么设计中国风的水墨字体效果?

CDR怎么设计中国风的水墨字体效果?

字体,国风,水墨,效果,电脑软件,想要设计中国风海报,那么水墨字体是必不可少的,该怎么制作水墨字体效果呢?请看下文详细介绍。软件名称:CorelDRAW X8 64位 简体中文安装免费版(附序列号)软件大小:547.9MB更新时间:2016-11-23步骤1:使用&ldquo;文本…

移动端效果之Swiper详解

移动端效果之Swiper详解

移动端,详解,效果,电脑软件,Swiper,写在前面最近在做移动端方面运用到了饿了么的vue前端组件库,因为不想单纯用组件而使用它,故想深入了解一下实现原理。后续将会继续研究一下其他的组件实现原理,有兴趣的可以关注下。代码在这里:戳我1. 说明父…

JS 判断某变量是否为某数组中的一

JS 判断某变量是否为某数组中的一

变量,种方法,组中,电脑软件,JS,1.正则表达式js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数。Array.prototype.in_array=function(e){var r=new RegExp(','+e+',');return (r.test(','+this.join(this…

怎么使用快速表格库中的表格向Word

怎么使用快速表格库中的表格向Word

表格,库中,快速,电脑软件,Word,  Word 2013提供了一个&ldquo;快速表格&rdquo;库,用户可以将经常使用的表格添加到这个库中,从而使已经完成样式设定的表格能够重复使用,而不必每次重新建立。以下是小编为您带来的关于使用快速表格库中的表格…

简单实现jQuery手风琴效果

简单实现jQuery手风琴效果

简单实现,手风琴,效果,电脑软件,jQuery,本文实例为大家分享了jQuery实现手风琴效果的具体代码,供大家参考,具体内容如下js代码:<script type="text/javascript" src="jquery-3.0.0.js"></script><script type="text/javascript"> $…

jquery网页加载进度条的实现

jquery网页加载进度条的实现

网页,进度条,加载,电脑软件,jquery,本次主要介绍一下网页加载进度的实现。如下图,在页面加载的时候,上方红色的进度条网页加载进度的好处是能够更好的反应当前网页的加载进度情况,loading进度条可用动画的形式从开始0%到100%完成网页加载这一…

怎么在ppt中设置播放间隔时间在ppt

怎么在ppt中设置播放间隔时间在ppt

设置,方法,步骤,间隔时间,电脑软件,  经常在使用PPT时会播放一些图片,如果要让他们自动播放而不是点击一次播放一张幻灯片,只需要设置一下就能实现,下面小编教你怎么在ppt中设置播放间隔时间。ppt中设置播放间隔时间的步骤首先我们先打开ppt…

JS二分查找算法详解

JS二分查找算法详解

二分查找算法,详解,电脑软件,JS,二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索,如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步。…

wps文字如何设置双面打印

wps文字如何设置双面打印

文字,方法,设置,秘诀,如何设置,  在日常办公中我们做一份文件经常需要对编辑好让后进行打印,那么WPS文字打印到底如何设置呢?下面给大家分享wps深圳双面打印的方法,希望能帮到大家。wps文字双面打印设置的方法1、在左上角&ldquo;WPS文字&rd…

Word2007如何将文档中的文字对齐

Word2007如何将文档中的文字对齐

文字,对齐,文档,如何将,电脑软件,  在一篇Word文档完成后,如果不进行文字对齐,就会影响美观,对于完美主义者来说,这是很难容忍的。默认的情况下我们会采用空格对齐文字,但是对齐的结果也不太理想。以下是小编为您带来的关于Word2007将文档中的…