gpt4 book ai didi

react-native - 使 VirtualizedList 显示为网格

转载 作者:行者123 更新时间:2023-12-03 09:01:01 24 4
gpt4 key购买 nike

我正在尝试做这样的事情:

Gird View

问题:该项目是使用 immutablejsaccording to React Native Docs 构建的,我无法使用 FlatList 因此我无法使用该组件的 numColumns props 功能。AFAIK,我唯一的选择是使用 VirtualizedList,正如文档指出的那样,但我不知道如何将单元格显示为网格,如上所示。

我已经尝试在单元格和 View 包装器中添加 style 属性,但没有任何用于对齐单元格的代码(如我发布的图片)被忽略。事实上,当我使用 ScrollView 时,它表现得非常完美,但由于巨大的延迟,我将代码移至 VirtualizedList

有什么帮助吗?任何事情都会受到欢迎,我已经在 Google 上进行了很多挖掘,但我找不到关于此的任何内容

一些示例代码:

      <View>
<VirtualizedList
data={props.schedules}
getItem={(data, index) => data.get(index)}
getItemCount={(data) => data.size}
keyExtractor={(item, index) => index.toString()}
CellRendererComponent={({children, item}) => {
return (
<View style={{any flexbox code gets ignored here}}>
{children}
</View>
)}}
renderItem={({ item, index }) => (
<Text style={{also here}} key={index}>{item.get('schedule')}</Text>
)}
/>
</View>

最佳答案

回答我自己的问题:我通过从 react-native 存储库复制 FlatList.js 源代码来使其工作。下面是一个示例代码:

<VirtualizedList
data={props.schedules}
getItem={(data, index) => {
let items = []
for (let i = 0; i < 4; i++) {
const item = data.get(index * 4 + i)
item && items.push(item)
}
return items
}}
getItemCount={(data) => data.size}
keyExtractor={(item, index) => index.toString()}
renderItem={({item, index}) => {
return (
<View key={index} style={{flexDirection: 'row'}}>
{item.map((elem, i) => (
<View key={i}>
<Text key={i}>{elem.get('horario')}</Text>
</View>
))}
</View>
)
}}
/>

数字4表示列数。关键部分位于 getItem 中,并在 View 组件中的 renderItem 处添加 flexDirection: 'row'

关于react-native - 使 VirtualizedList 显示为网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com