React Native Flatlist 中的网格视图
Grid view in React Native Flatlist
如何在 FlatList 组件的 React Native 中实现这样的视图?
通常在网络中使用 css 网格很容易,但我无法在本机反应中做到这一点。
如果你想渲染一个 n by n
网格,你可以使用 FlatList 的 numColumns
属性。然后您可以将数据传递到 FlatList 的 data
属性 以指定如何通过传递 renderItem
属性.[=19 中的函数来呈现网格中的每个单元格=]
一个粗略的例子是这样的:
import { FlatList } from "react-native";
<FlatList
data={myData}
numColumns={3}
renderItem={({ item }) => <MyCellComponent cellData={item} />}
/>
但是,您的问题有点不同,因为您想要渲染不均匀的网格。您可以将网格划分为两个单独的组件,ComponentA 和 ComponentB,并在 ScrollView 中渲染它们。
粗略的代码示例如下所示:
import { ScrollView } from "react-native";
<ScrollView>
<ComponentA />
<ComponentB />
<ComponentA />
</ScrollView>
尽管如此,如果您真的想使用 FlatList,那么您可以创建第三个组件 ComponentC,它基本上会像这样包装前面的示例:
import { View } from "react-native";
function ComponentC() {
return (
<View>
<ComponentA />
<ComponentB />
<ComponentA />
</View>
);
}
然后在 FlatList 中渲染它:
<FlatList
data={myData}
renderItem={({ item }) => (<ComponentC data={item} />)}
/>
如何在 FlatList 组件的 React Native 中实现这样的视图?
通常在网络中使用 css 网格很容易,但我无法在本机反应中做到这一点。
如果你想渲染一个 n by n
网格,你可以使用 FlatList 的 numColumns
属性。然后您可以将数据传递到 FlatList 的 data
属性 以指定如何通过传递 renderItem
属性.[=19 中的函数来呈现网格中的每个单元格=]
一个粗略的例子是这样的:
import { FlatList } from "react-native";
<FlatList
data={myData}
numColumns={3}
renderItem={({ item }) => <MyCellComponent cellData={item} />}
/>
但是,您的问题有点不同,因为您想要渲染不均匀的网格。您可以将网格划分为两个单独的组件,ComponentA 和 ComponentB,并在 ScrollView 中渲染它们。
粗略的代码示例如下所示:
import { ScrollView } from "react-native";
<ScrollView>
<ComponentA />
<ComponentB />
<ComponentA />
</ScrollView>
尽管如此,如果您真的想使用 FlatList,那么您可以创建第三个组件 ComponentC,它基本上会像这样包装前面的示例:
import { View } from "react-native";
function ComponentC() {
return (
<View>
<ComponentA />
<ComponentB />
<ComponentA />
</View>
);
}
然后在 FlatList 中渲染它:
<FlatList
data={myData}
renderItem={({ item }) => (<ComponentC data={item} />)}
/>