J'ai essayé quelques façons de résoudre ce problème, y compris ListHeaderComponent
ouListFooterComponent
, mais tout ne me convenait pas.
la disposition que je voulais réaliser est comme ça, et je voulais faire défiler une fois.
<ScrollView>
<View>I'm the first view</View>
<View>I'm the second view</View>
<MyFlatList />
</ScrollView>
Je veux d'abord dire merci à ce numéro et à ces commentaires, qui m'ont donné beaucoup d'idées.
Je pensais à des ListHeaderComponent
endroits au-dessus de la Flatlist, mais comme ma Flatlist
direction était la colonne, l'en-tête que je voulais placer était à gauche de la Flatlist
:(
Ensuite, j'ai dû essayer VirtualizedList-backed
quelque chose. J'ai juste essayé d'emballer tous les composants VirtualizedList
, où renderItems
donne l'index et où je pouvais passer des composants sous condition renderItems
.
J'aurais pu travailler avec Flatlist
, mais je n'ai pas encore essayé.
Enfin, cela ressemble à ceci.
<View>
<Virtualizedlist
data={[]}
initialNumToRender={1}
renderItem={(props)=>{
props.index===0 ? (1st view here) : props.index===1 ? (2nd view here) : (my flatlist)
}}
keyExtractor={item => item.key}
getItemCount={2}
getItem={ (data, index) => {
return {
id: Math.random().toString(12).substring(0),
}
}}
/>
</View>
(inside which lazyly renders↓)
<View>I'm the first view</View>
<View>I'm the second view</View>
<MyFlatList />
et bien sûr capable de faire défiler tout l'écran.