react-native - Animated.FlatList 上的 disableIntervalMomentum 不起作用
问题描述
我正在开发一个应用程序,其中包括一个用于查看其他人故事的水平界面。为了提高性能,我使用了一个 FlatList 并且它工作得很好,除了我可以像提要一样滚动它并且它不会在下一个索引/故事上停止
尝试使用 disableIntervalMomentum 来处理这个问题,这是 FlatList 应该从 ScrollView 继承的道具,但它没有显示任何效果!在博览会上运行:^34.0.1
除了自己编写整个滚动行为之外,我还能做什么?感谢您的帮助!:D
<Animated.FlatList
data={this.state.stories}
keyExtractor={this._keyExtractor}
renderItem={this._renderSingleStory}
style={StyleSheet.absoluteFillObject}
horizontal
snapToInterval={width}
disableIntervalMomentum
snapToAlignment={"center"}
decelerationRate={0.88}
initialScrollIndex={this.props.stories.indexOf(this.props.currentActiveBigStory)}
showsHorizontalScrollIndicator={false}
getItemLayout={(data, index) => (
{ length: width, offset: width * index, index }
)}
onScroll={Animated.event(
[
{
nativeEvent: {
contentOffset: { x },
},
},
],
{ useNativeDriver: true },
)}
/>
解决方案
对于每个为此苦苦挣扎的人, pagingEnabled 做到了(感谢青)这是当前的代码:
<Animated.FlatList
data={this.state.items}
keyExtractor={this._keyExtractor}
renderItem={this._renderSingleStory}
initialScrollIndex={this.props.items.indexOf(this.props.currentActiveBigStory)}
showsHorizontalScrollIndicator={false}
pagingEnabled
horizontal
getItemLayout={(data, index) => (
{ length: width, offset: width * index, index }
)}
onScroll={Animated.event(
[
{
nativeEvent: {
contentOffset: { x },
},
},
],
{ useNativeDriver: true },
)}
/>
我希望它对你有帮助!:D
推荐阅读
- curl - cURL 读取外部变量
- c# - 统一冷却实施
- javascript - React 删除推送历史记录中的额外问号
- haskell - optparse-applicative 与自定义 monad
- node.js - 如何 console.log() 通过 mongoose 存储在 mongoDB 中的经度和纬度
- python - 如何在每次不打开 sqlite 连接的情况下运行功能
- amazon-web-services - 有没有办法配置 AWS SES 或 Cognito 以使用我自己的 SMTP 服务器?
- java - 为什么我得到“资源泄漏:”
' ' 错误,即使我在 Java 中使用 close() 方法? - php - 未找到视图 - Laravel
- azure - Azure DevOps 工件