博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RN页面获取组件位置和大小的方法
阅读量:5162 次
发布时间:2019-06-13

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

在RN的页面布局和操作中,有时需要获取元素的大小和位置信息,本文从网上抄袭了几个常用方法,以备不时之需。

首先是获取设备屏幕的宽高

import {Dimensions} from 'react-native';var {height, width} = Dimensions.get('window');

下面介绍获取普通元素的大小和位置信息的方法

方法一:onLayout 事件属性

_onLayout(event){    let {x,y,width,height} = e.nativeEvent.layout}....
this._onLayout}>

当组件重新渲染时,该方法就能重新获取到元素的宽高和位置信息,但是有时组件并没有重新render那么就获取不到正确的值,例如页面滚动,但是state没有发生变化,组件也就没有重新渲染。

方法二:元素自带measure方法

首先给元素添加上ref

this.myView = view}>

然后需要注意的是需要在componentDidMount方法里面添加一个定时器,定时器里面再进行测量,否则拿到的数据都为0.

componentDidMount(){    setTimeOut(() => {      this.myView.measure((x,y,widht,height,left,top) => {        //todo        })    });}

实际使用过程中我发现这个方法在自定义的组件上会失效,只能应用在RN自带的View等组件上,使用时需要注意一下。

方法三:使用UIManager measure方法

首先引入

import {    UIManager,    findNodeHandle} from 'react-native';

再给组件加上引用

this.myComponent=ref} />

最后测量

UIManager.measure(findNodeHandle(this.myComponent),(x,y,width,height,pageX,pageY)=>{                //todo            })

转载于:https://www.cnblogs.com/star91/p/RN-ye-mian-huo-qu-zu-jian-wei-zhi-he-da-xiao-de-fa.html

你可能感兴趣的文章
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>
centos 引导盘
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
Apriori算法
查看>>
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>