Я спробував кілька способів вирішити це, в тому числі 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 />
і, звичайно, в змозі прокрутити весь екран.