React-native 水平滚动视图动画到结束

Posted

技术标签:

【中文标题】React-native 水平滚动视图动画到结束【英文标题】:React-native Horizontal scroll View animate to end 【发布时间】:2018-05-04 22:14:15 【问题描述】:

我有水平滚动视图中的图像,我只希望在第一次滑动时所有图像滚动以平滑动画结束,以便用户可以通过一次滑动查看所有图像。

使用 prop scrollToEnd 对我没有帮助,因为它滚动得太快了。

这是我当前的代码。

   <ScrollView 
    contentContainerStyle=styles.container
    horizontal=true
    ref="scrollview"
    onScrollEndDrag=()=> this.refs.scrollview.scrollToEnd(animated: true)
    >
    <Image width=1800  source=require('./assets/1.png') />
    <Image width=1800  source=require('./assets/2.png') />
    <Image width=1800  source=require('./assets/3.png') />
    <Image width=1800  source=require('./assets/4.png') />
    <Image width=1800  source=require('./assets/5.png') />
    <Image width=1800  source=require('./assets/7.png') />
    <Image width=1800  source=require('./assets/8.png') />
    <Image width=1800  source=require('./assets/9.png') />
    <Image width=1800  source=require('./assets/10.png') />
  </ScrollView>


const styles = StyleSheet.create(
  container: 
    flexGrow:1,
    flexDirection: 'row',
,
cover: 
    flexGrow: 1,
    height: "90%"

);

【问题讨论】:

plus refs 在这里被定义了。 this.refs.scrollview.scrollToEnd(animated: false) > 【参考方案1】:

尝试使用FlatList 代替ScrollView 可以如下使用:

import React,  Component  from "react";
import  FlatList, Text from "react-native";

const data = [
  
    imageUrl: require('./assets/1.png'),
    title: "something"
  ,
  
    imageUrl: require('./assets/2.png'),
    title: "something two"
  

];

export default class App extends Component 
  constructor(props) 
    super(props);
    this.state = 
      data: data
    ;
  

  render() 
    return (
      <FlatList
        horizontal
        data=this.state.data
        renderItem=( item: rowData ) => 
          return (
         <Image width=1800  source=rowData.imageUrl />
          );
        
        keyExtractor=(item, index) => index
      />
    );
  

我没有测试代码,但我认为这应该可以工作,我需要稍作修改

希望对你有帮助

【讨论】:

这不是我的问题。我已经有一个水平滚动视图。想要慢慢动画结束。

以上是关于React-native 水平滚动视图动画到结束的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在水平滚动视图中对特定偏移进行动画处理?

滚动水平表视图时淡入淡出动画

水平和垂直回收器视图中的滚动问题

滚动视图中的 Swift 弹出框

如何在颤动中制作水平滚动动画

UICollectionViewFlowLayout 中的自定义动画 - 水平滚动方向