如果高度是动态的,如何将每个项目的高度放入getItemLayout中?

时间:2019-03-07 06:09:38

标签: react-native react-native-flatlist react-native-sectionlist

我想使用getItemLayout来提高<FlatList />的效率。

但是当使用onLayout来获得不稳定的列表高度时,可能是128或230或183。

因此将itemHeight的128设置为getItemLayout不能正常工作。

还有其他方法可以让我的itemHeight将动态身高计入我的getItemLayout吗?

onLayout(event) {
  const {x, y, height, width} = event.nativeEvent.layout;
  console.log('height:', height); // the height is dynamic
}

renderItem = ({ item }) => {
  return (
    <View onLayout={(event) => this.onLayout(event)} style={styles.floorView} style={styles.itemView}>
      <Text>{item.name}</Text>
    </View>
  );
}

<FlatList
  data={DUMMY_LIST}
  ref={(ref) => { this.flatListRef = ref; }}
  renderItem={this.renderItem}
  numColumns={1}
  keyExtractor={(item, index) => index.toString()}
  getItemLayout={(data, index)=> {
  return { length: itemHeight, offset: itemHeight * index , index };
  }}
/>

0 个答案:

没有答案