Eu tentei algumas maneiras de resolver isso, incluindo ListHeaderComponent
or ListFooterComponent
, mas tudo não se encaixava para mim.
o layout que eu queria alcançar era assim, e eu queria ser rolado uma vez.
<ScrollView>
<View>I'm the first view</View>
<View>I'm the second view</View>
<MyFlatList />
</ScrollView>
Primeiro, quero agradecer a essa questão e comentários, que me deram várias idéias.
Eu estava pensando em ListHeaderComponent
lugares acima da Flatlist, mas como Flatlist
a direção da minha coluna era coluna, o cabeçalho que eu queria colocar ficava à esquerda do Flatlist
:(
Então eu tive que tentar VirtualizedList-backed
algo. Eu apenas tentei empacotar todos os componentes VirtualizedList
, onde renderItems
dá o índice e lá eu poderia passar os componentes condicionalmente renderItems
.
Eu poderia ter trabalhado nisso Flatlist
, mas ainda não tentei.
Finalmente, fica assim.
<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 />
e, claro, capaz de rolar a tela inteira.