我正在创建一个视图网格。我正在使用纯flex。即没有绝对定位。实际屏幕截图:
我需要知道网格中每个视图的位置,并且我正在使用onLayout道具。 问题是evt.nativeEvent.layout上的y值始终为零,其余值(x,height,width)都很好。 我只在Android中测试,使用Genymotion和物理索尼Xperia设备(均使用Android 6.0.1)。
为什么y值为0的任何想法?
React Native版本: 反应 - 天然:0.40.0,反应 - 天然 - cli:1.2.0
感谢您的帮助。
答案 0 :(得分:0)
好的..我怀疑这样,所以我最终保存了行的Y位置,然后将其分配给“单元格”。谢谢你的帮助@HaitaoLi
答案 1 :(得分:0)
我的版本
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]
)