React Native获取组件的位置和宽高

import React, {Component} from 'react';
import {
  Text,
  View,
  findNodeHandle,
  UIManager
} from 'react-native';

export default class App extends Component<Props> {
  render() {
    return (
      <View style={{flexDirection: 'row', marginTop: 100}}>
        <Text
          ref='text'
          style={{marginTop: 100, backgroundColor: 'cyan'}}
          onPress={()=>{
            const handle = findNodeHandle(this.refs.text)
            UIManager.measure(handle,(x, y, width, height, pageX, pageY)=>{
              console.log('相对父视图位置x:', x);
              console.log('相对父视图位置y:', y);
              console.log('组件宽度width:', width);
              console.log('组件高度height:', height);
              console.log('距离屏幕的绝对位置x:', pageX);
              console.log('距离屏幕的绝对位置y:', pageY);
            })
          }}
        >点击获取这几个字的长度</Text>
      </View>
    );
  }
}
image.png
image.png

如果去掉Text外面的View或者保留View但删除样式flexDirection: 'row'结果会是怎样呢 ,组件的宽度将会变成屏幕的宽度


image.png

image.png

使用此方法时一定要注意六个参数的顺序,依次为相对父视图位置x、相对父视图位置y、组件宽度、组件高度、距离屏幕的绝对位置x、距离屏幕的绝对位置y

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容