Intenté algunas formas de resolver esto, incluyendo ListHeaderComponento ListFooterComponent, pero no me quedó bien.
El diseño que quería lograr es así, y quería que me desplazaran una vez.
<ScrollView>
<View>I'm the first view</View>
<View>I'm the second view</View>
<MyFlatList />
</ScrollView>
Primero quiero agradecer este problema y comentarios, que me dieron muchas ideas.
Estaba pensando en ListHeaderComponentlugares sobre la lista plana, pero como Flatlistla dirección de mi era la columna, el encabezado que quería colocar estaba a la izquierda de Flatlist:(
Luego tuve que probarme VirtualizedList-backedalgo. Solo intenté empaquetar todos los componentes VirtualizedList, donde renderItemsda índice y allí podría pasar componentes condicionalmente renderItems.
Podría haber trabajado con esto Flatlist, pero aún no lo he intentado.
Finalmente se ve así.
<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 />
y, por supuesto, capaz de desplazar toda la pantalla.