Android React Native OnlyLayout nativeEvent.layout.y始终返回0

Android React Native OnlyLayout nativeEvent.layout.y始终返回0,android,react-native,Android,React Native,我正在创建一个视图网格。我用纯flex来做。i、 没有绝对定位。实际屏幕截图: 我需要知道网格中每个视图的位置,为此,我使用了onLayout道具。 问题是evt.nativeEvent.layout上的y值始终为零,其余值(x、高度、宽度)都可以。 我只在安卓系统中进行测试,使用的是Genymotion和索尼Xperia物理设备(都是安卓6.0.1) 你知道为什么y值是0吗 反应本机版本: react-native:0.40.0,react-native cli:1.2.0 谢谢你的帮助。好

我正在创建一个视图网格。我用纯flex来做。i、 没有绝对定位。实际屏幕截图:

我需要知道网格中每个视图的位置,为此,我使用了onLayout道具。 问题是evt.nativeEvent.layout上的y值始终为零,其余值(x、高度、宽度)都可以。 我只在安卓系统中进行测试,使用的是Genymotion和索尼Xperia物理设备(都是安卓6.0.1)

你知道为什么y值是0吗

反应本机版本: react-native:0.40.0,react-native cli:1.2.0


谢谢你的帮助。

好的。。我怀疑这一点,所以我最终保存了行的Y位置,然后将其分配给“单元格”。谢谢您的帮助@HaitaoLi

我的版本

const handleTabLayout = useCallback(
  (e: LayoutChangeEvent, index: number) => {
    const { width, x: nativeX } = e.nativeEvent.layout
    const x =
      Platform.OS === 'android' ? tabsWidth.reduce((sum, el, i) => (i < index ? sum + el.width : sum), 0) : nativeX
    if (tabsWidth[index]?.width !== width) {
      const newTabsWidth = tabsWidth.map((tw, twIndex) => (twIndex === index ? { ...tw, width, x } : tw))
      setTabsWidth(newTabsWidth)
    }
  },
  [tabsWidth]
)
const handleTabLayout=useCallback(
(e:LayoutChangeEvent,索引:number)=>{
const{width,x:nativeX}=e.nativeEvent.layout
常数x=
Platform.OS=='android'?tabsWidth.reduce((总和,el,i)=>(i(twIndex==索引?{…tw,width,x}:tw))
setTabsWidth(新宽度)
}
},
[tabsWidth]
)

您是否将所有视图都放在顶层视图中,还是放在单独的行中?单独的行。如果使用单独的行,则每个单元格的y坐标相对于其自己的行,因此始终为0。确定。。我怀疑这一点,所以我最终保存了行的Y位置,然后将其分配给“单元格”。谢谢你的帮助@HaitaoLi