博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react native mask 绘制
阅读量:4630 次
发布时间:2019-06-09

本文共 1337 字,大约阅读时间需要 4 分钟。

react native 以下简称RN。

RN的mask绘制,主要是什么时候出发mask层的绘制。

比如,被某一个state改变触发了。触发后按照RN的渲染规则,应当是重新render,重新render时什么mask层如果要全屏遮罩,那么应该放到render渲染的最后一处渲染,也就是绝对定位后,从左上0绘制一个透明的view覆盖当前屏幕的宽高。

 

实现的一个例子,点击按钮触发mask,点击mask再取消。

 

 

这个例子虽然很简单,但是可以用来熟悉RN的界面渲染机制,都是通过state来控制的。这也是符合RN风格的一种渲染机制,个人认为setNativeProps不是一个好的方法,官方也明确说明在setState + shouldComponentUpdate 确实无法达到性能要求,那可以尝试使用setNativeProps。

以下是上面那个例子的全部代码:

import React, { Component } from 'react';import {  AppRegistry,  StyleSheet,  Text,  TouchableHighlight,  TouchableWithoutFeedback,  View} from 'react-native';const Dimensions = require('Dimensions');global.screenWidth = Dimensions.get('window').width;global.screenHeight = Dimensions.get('window').height;export default class rnPicker extends Component {  constructor(props) {    super(props);    this.state = {      showMask: false    };  }  render() {    let maskView = this._renderMask();    return (        
Show Mask
{maskView}
); } _changeMask() { this.setState({ 'showMask': !this.state.showMask }) } _renderMask() { if (this.state.showMask) { return (
); } else { return null; } }}

  

有空的时候再详细补充一下博客,最终做成一个picker的组件

转载于:https://www.cnblogs.com/johnxc/p/6269458.html

你可能感兴趣的文章
MVC 总结
查看>>
Ubuntu 14.04系统托盘图标问题,skype托盘图标显示
查看>>
learning to openstack concept
查看>>
BasicModal - 简单易用的现代 Web App 弹窗
查看>>
免费下载高质量素材资源的28个网站推荐
查看>>
junit、hamcrest、eclemma的安装与使用
查看>>
自动轮播精简版
查看>>
[置顶] 单例模式lua实现
查看>>
如何在VMware虚拟机上安装Linux操作系统(Ubuntu)
查看>>
(2)入门指南——(3)为什么jquery工作的很好(Why jQuery works well)
查看>>
hdu - 4707 - Pet
查看>>
RobotFramework下的http接口自动化Set Request Body 关键字的使用
查看>>
Kindeditor学习中的那些坑
查看>>
Servlet
查看>>
一篇价值百万的文章:我为什么在22岁辞去年薪150万的工作?
查看>>
信息安全系统设计基础期末总结
查看>>
leetcode 203 Remove Linked List Elements
查看>>
TCP/IP 笔记 1.3 IP:网际协议
查看>>
HDU 1061 Rightmost Digit
查看>>
八种简易健康减肥瘦身法
查看>>