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

属性
Modal提供的属性有:
animationType(动画类型) PropTypes.oneOf([‘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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# React-Native
# Modal
# React
# Native组件Modal
# Modal.confirm是否违反了React模式分析
# React报错之组件不能作为JSX组件使用的解决方法
# react中使用ant组件库的modal弹窗报错问题及解决
# 模态
# 滑入
# 也会
# 可以看出
# 可以实现
# 用它
# 大家多多
# 就可以
# 可以用来
# 不透明
# 使用了
# 见性
# landscape
# upside
# left
# iOS
# onOrientationChange
# info
# portrait
# supportedOrientations
相关文章:
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
制作门户网站的参考文献在哪,小说网站怎么建立?
如何快速生成可下载的建站源码工具?
大连 网站制作,大连天途有线官网?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
建站之星代理平台如何选择最佳方案?
定制建站方案优化指南:企业官网开发与建站费用解析
潮流网站制作头像软件下载,适合母子的网名有哪些?
建站之星展会模版如何一键下载生成?
网站网页制作专业公司,怎样制作自己的网页?
Android自定义控件实现温度旋转按钮效果
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
如何选择高性价比服务器搭建个人网站?
如何快速搭建虚拟主机网站?新手必看指南
如何快速上传自定义模板至建站之星?
如何用花生壳三步快速搭建专属网站?
建站与域名管理如何高效结合?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
如何确保FTP站点访问权限与数据传输安全?
焦点电影公司作品,电影焦点结局是什么?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
建站之星如何取消后台验证码生成?
如何彻底删除建站之星生成的Banner?
制作网站的公司有哪些,做一个公司网站要多少钱?
建站之星北京办公室:智能建站系统与小程序生成方案解析
教学网站制作软件,学习*后期制作的网站有哪些?
制作网站怎么制作,*游戏网站怎么搭建?
建站之星伪静态规则如何正确配置?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
如何高效配置IIS服务器搭建网站?
小程序网站制作需要准备什么资料,如何制作小程序?
已有域名能否直接搭建网站?
如何在阿里云服务器自主搭建网站?
如何挑选最适合建站的高性能VPS主机?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
公司网站的制作公司,企业网站制作基本流程有哪些?
网站制作公司,橙子建站是合法的吗?
如何在Windows 2008云服务器安全搭建网站?
如何在IIS7中新建站点?详细步骤解析
Swift中循环语句中的转移语句 break 和 continue
建站之星如何一键生成手机站?
如何通过西部数码建站助手快速创建专业网站?
如何在腾讯云免费申请建站?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何通过网站建站时间优化SEO与用户体验?
南平网站制作公司,2025年南平市事业单位报名时间?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何续费美橙建站之星域名及服务?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
*请认真填写需求信息,我们会在24小时内与您取得联系。