我想让我的水平 FlatList(启用分页)向左或向右滚动,以使内容始终位于屏幕中心,并且下一个和上一个内容仍然出现。
问问题
14998 次
3 回答
15
我们公司也有类似的需求,但现有的插件都没有完全满足我们的用例。我们最终创建了自己的并将其开源:react-native-snap-carousel
.
该插件现在构建在FlatList
(版本 >= 3.0.0)之上,并提供预览(您想要的效果)、捕捉效果、视差图像、RTL 支持等。
您可以查看展示柜,了解使用它可以实现的目标。如果您决定尝试一下,请随时与我们分享您的反馈;我们一直在努力改进它。
编辑:版本中引入了两种新布局3.6.0
(一种具有一堆卡片效果,另一种具有类似火种的效果)。享受!
于 2017-08-03T14:23:16.987 回答
11
我使用了 react-native-snap-carousel,虽然动画和自定义非常好,但很难设置样式,因为它的行为不像普通视图,并且不能在 ScrollView 中正确呈现。
相反,我使用此页面中的一些说明恢复到正常的 FlatList
设置:
<FlatList
data={this.data}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
horizontal={true} // row instead of column
// Add the 4 properties below for snapping
snapToAlignment={"start"}
snapToInterval={this.IMAGE_WIDTH + 10} // Adjust to your content width
decelerationRate={"fast"}
pagingEnabled
/>
于 2020-01-06T10:10:25.327 回答
2
为此,使用库可能会更好地为您服务。对于相同的用例,我已经习惯react-native-carousel
了很好的成功。Github在这里。您的代码将如下所示:
import Carousel from 'react-native-carousel'
getListItems() {
return [ <View>...</View>, <View>...</View>]
}
render() {
return (
<Carousel>
{this.getListItems()}
</Carousel>
)
}
于 2017-06-02T22:12:31.920 回答