Ich habe versucht, dies zu lösen, einschließlich ListHeaderComponentoder ListFooterComponent, aber alles passte nicht zu mir.
Das Layout, das ich erreichen wollte, ist wie folgt, und ich wollte einmal gescrollt werden.
<ScrollView>
<View>I'm the first view</View>
<View>I'm the second view</View>
<MyFlatList />
</ScrollView>
Zuerst möchte ich mich bei diesem Thema und den Kommentaren bedanken, die mir viele Ideen gegeben haben.
Ich dachte an ListHeaderComponentOrte über der Flatlist, aber da meine FlatlistRichtung Spalte war, ging der Header, den ich platzieren wollte, links von Flatlist:(
Dann musste ich etwas anprobieren VirtualizedList-backed. Ich habe gerade versucht, alle Komponenten einzupacken VirtualizedList, wo renderItemsgibt Index und dort konnte ich Komponenten bedingt übergeben renderItems.
Ich hätte damit arbeiten können Flatlist, aber ich habe es noch nicht versucht.
Endlich sieht es so aus.
<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 />
und natürlich in der Lage, den gesamten Bildschirm zu scrollen.