Я спробував кілька способів вирішити це, в тому числі ListHeaderComponentабо ListFooterComponent, але це все не підходило мені.
макет, який я хотів досягти, такий, і я хотів раз прокрутитись.
<ScrollView>
<View>I'm the first view</View>
<View>I'm the second view</View>
<MyFlatList />
</ScrollView>
Спершу хочу сказати завдяки цьому питанню та коментарям, які дали мені купу ідей.
Я думав про ListHeaderComponentмісця, що стоять над Плоским списком, але оскільки в моєму Flatlistнапрямку був стовпець, заголовок, який я хотів розмістити, пішов зліва від Flatlist:(
Тоді мені довелося приміряти на себе VirtualizedList-backed. Я просто намагався запакувати всі компоненти VirtualizedList, де renderItemsдається індекс, і там я міг умовно передавати компоненти renderItems.
З цим я міг би попрацювати Flatlist, але ще не намагався.
Нарешті це виглядає приблизно так.
<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 />
і, звичайно, в змозі прокрутити весь екран.