Intenté algunas formas de resolver esto, incluyendo ListHeaderComponent
o 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 ListHeaderComponent
lugares sobre la lista plana, pero como Flatlist
la dirección de mi era la columna, el encabezado que quería colocar estaba a la izquierda de Flatlist
:(
Luego tuve que probarme VirtualizedList-backed
algo. Solo intenté empaquetar todos los componentes VirtualizedList
, donde renderItems
da í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.