使用 React Native 在屏幕上实现可靠的绝对位置

Cod*_*949 10 react-native react-native-reanimated-v2

获取任何元素在屏幕上的绝对位置的最可靠方法是什么?

我遇到的问题是,当使用我的方法添加上面的元素(父元素)时,我无法获取元素的绝对位置。

上下文:我需要获取元素在屏幕上的绝对位置,以检查跟随手指的元素(用重新动画制作的动画)是否与我无法从中获取绝对位置的元素相交。

我尝试过的方法:

event.target.measure
Run Code Online (Sandbox Code Playgroud)

问题是我在“下拉框”上有一个滑动元素,它只会产生错误的位置。

ref.current.measure
Run Code Online (Sandbox Code Playgroud)

这个有效但不可靠。它在 useEffect 中发射大约十次,并且只在正确位置产生一次。

还有其他可靠的事情我可以尝试吗?我不明白为什么很难获得屏幕上相对于父级的绝对位置。

小智 2

我不确定您的代码是如何连接的,也不确定您是否想以黑客方式实现此功能,但您可以从布局属性https://reactnative.dev/docs/view#onlayout获取元素的绝对位置

  • 嘿,@Dawid 非常感谢你的回答。您给出的答案仅计算相对于父级的位置。我将制作一个示例存储库,其中问题被抽象出来。 (2认同)