如何在 React Native 中获取 Native 元素的尺寸和位置

Jul*_*lhé 5 react-native

我正在使用一个框架react-native-svg来在 React Native 视图中绘制 SVG 元素。

我的目标是当我点击视图时(我PanResponder在全局视图上使用 a来获取它),最接近点击的元素会发生变化。

我拥有我需要的一切,除了一件事:我需要能够知道我的 svg 元素的位置以及它们的大小,以便找到最接近点击事件的元素。

现在,我已经尝试了大部分可用的东西:

  • onLayout:那些 svg 元素似乎不是视图,因此不会调用 onLayout 回调。
  • this.refs.elem.measure: 与 相同onLayout,它们不是视图,因此measure函数未定义。
  • UIManager.measure(ReactNative.findNodeHandle(this.refs.elem), callback): 除了 react-native-svg 组件 Svg 之外,所有值都返回 0,但不是所有其他值:G、Path、Line 等。

所以我想知道是否还有其他解决方案,或者我是否注定要失败。:) 我是否必须更改 react-native-svg 中的某些内容才能让我找到这些值,或者是否有任何解决方案适合我?

谢谢!

Jul*_*lhé 1

我最终不得不向react-native-svg 添加一些功能,以便我可以获得不同元素的大小。

虽然做得不是很好,但我可能会回来寻找更干净的解决方案,然后提交 PR。

谢谢。