加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native – 对FlatList不起作用的initialScrollIndex反应原

发布时间:2020-12-15 20:30:22 所属栏目:百科 来源:网络整理
导读:我遇到了FlatList的initialScrollIndex问题 – 只是忽略了initialScrollIndex的参数,并显示了第一个项目. https://snack.expo.io/Bk1mkK0zZ 解决方法 我有完全相同的问题,这就是我找到你的问题的原因.经过大量测试后,我找到了一种解决方法,这似乎有效.我没有
我遇到了FlatList的initialScrollIndex问题 – 只是忽略了initialScrollIndex的参数,并显示了第一个项目.

https://snack.expo.io/Bk1mkK0zZ

解决方法

我有完全相同的问题,这就是我找到你的问题的原因.经过大量测试后,我找到了一种解决方法,这似乎有效.我没有使用initialScrollIndex,而是在呈现列表后使用了scrollToIndex函数.将它应用于您的代码,它看起来像

import React,{ Component } from 'react';
import { FlatList,Dimensions,View,Text } from 'react-native';

const WIDTH = Dimensions.get('window').width;
const HEIGHT = Dimensions.get('window').height;

export default class App extends Component {

  render() {
    const data = [{id: 0},{id: 1},{id: 2},{id: 3},{id: 4}];

     return (
      <View onLayout={() => this.onLayout()}>
        <FlatList
          ref={el => this.list = el}
          data={data}
          renderItem={this.renderItem}
          keyExtractor={item => item.id}

          pagingEnabled={true}
          horizontal={true}
          showsHorizontalScrollIndicator={false}

          getItemLayout={this.getItemLayout}

          debug={true}
        />
      </View>
    )
  }

  onLayout() {
    this.list.scrollToIndex({index: 2})
  }

  renderItem = ({ item }) => {
    return (
      <View style={{flex: 1,backgroundColor: 'lightblue',width: WIDTH,height: HEIGHT,justifyContent: 'center',alignItems: 'center'}}>
        <Text style={{color: 'white',fontSize: 300,fontWeight: 'bold'}}>{item.id}</Text>
      </View>
    );
  };

  getItemLayout = (data,index) => (
    {length: WIDTH,offset: WIDTH * index,index}
  );
}

希望对你有效.

顺便说一句,把this.list.scrollToIndex({index:2})放在componentDidMount中,由于某种原因不适合我,这就是为什么我用onLayout而不是

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读