Ich habe versucht, dies zu lösen, einschließlich ListHeaderComponent
oder 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 ListHeaderComponent
Orte über der Flatlist, aber da meine Flatlist
Richtung 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 renderItems
gibt 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.