Я попробовал несколько способов решить эту проблему, включая ListHeaderComponent
или ListFooterComponent
, но все это мне не подходило.
макет, который я хотел достичь, похож на это, и я хотел получить прокрутку в один раз.
<ScrollView>
<View>I'm the first view</View>
<View>I'm the second view</View>
<MyFlatList />
</ScrollView>
Сначала я хочу сказать спасибо этой проблеме и комментариям, которые дали мне кучу идей.
Я думал о ListHeaderComponent
местах выше Flatlist, но так как мое 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 />
и, конечно, в состоянии прокрутить весь экран.