gpt4 book ai didi

android - Android 支持 React Native 的 onScroll、onScrollEndDrag、onScrollBeginDrag 吗?

转载 作者:行者123 更新时间:2023-11-29 02:20:46 26 4
gpt4 key购买 nike

我在 onScrollBeginDragonScrollonScrollEndDrag 中有一些简单的 console.log 语句附加到 ScrollView 。我可以看到它们在我的 iOS 设备上按预期工作,但它们在 Android 模拟器上不工作。

这就提出了一个问题,这些 Prop 是否只在 iOS 上支持,还是 Android 模拟器有问题?

代码很简单:

onScroll={() => console.log("scroll")}
onScrollBeginDrag={() => console.log("begin")}
onScrollEndDrag={() => console.log("end")}

最佳答案

是的,他们受支持,但他们有问题......

我假设您使用 <FlatList />渲染您的组件,对吗?

如果是这样,您的问题很可能是由 <View /> 引起的包含你的 <FlatList />项目 被 Android 优化掉。 Android 会自动删除实际上不呈现任何内容(例如背景颜色或边框)的“环绕” View 。这种优化有助于减少 View 层次结构的深度,但在某些情况下可能会导致意外结果(例如这种情况)...

我添加了一个透明的 backgroundColor到包装 <View />的项目,现在 onScrollBeginDrag , onScrollEndDragonScroll <FlatList />的事件正在按预期开火!

<FlatList
onScrollBeginDrag={() => console.log('begin')}
onScrollEndDrag={() => console.log('end')}
onScroll={() => console.log('end')}
data={[{key: 'a'}, {key: 'b'}]}

renderItem={({ item }) => (
<View style={{ backgroundColor: 'transparent' }}>
<Text>{item.key}</Text>
</View>
)}
/>

我还删除了 FlatList paddings,并在环绕 View 中添加了一些 paddings,这使得可触摸区域更大。

PS:感谢 Bartol Karuza .

关于android - Android 支持 React Native 的 onScroll、onScrollEndDrag、onScrollBeginDrag 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55940600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com