Я хочу использовать 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 };
}}
/>