react-native-waterfall-list-view
Version:
基于官方 flatlist 实现的 多列 不定高 瀑布流组件 不依赖任何第三方
39 lines (33 loc) • 1.2 kB
text/typescript
import React from 'react';
import { FlatList, type FlatListProps, type ViewStyle } from 'react-native';
export type ItemData = {
offsetTop: number; // !! 元素距离容器顶部的距离
itemH: number; // 元素高度
itemData: any; // 元素数据
columnIndex: number; // 当前元素所在的列
index: number; // 原始列表的位置索引
};
export type RowData = {
rowIndex: number; // 第几行
rowData: ItemData[]; // 每行的列数据
rowH: number; // 行高度
rowOffsetTop: number; // !! 每行距离容器顶部的距离
};
export type IRenderItemProps = {
item: ItemData;
index: number;
row: RowData;
};
export interface IWaterFallListProps
extends Omit<FlatListProps<RowData>, 'renderItem' | 'ItemSeparatorComponent'> {
renderItem: ({ item, index, row }: IRenderItemProps) => React.ReactElement | null;
ItemSeparatorComponent?: () => JSX.Element;
children?: React.ReactNode; // 添加children类型
rowStyle?: ViewStyle;
data: any[];
onItemLayoutDone?: () => void;
}
export interface IWaterFallList {
refreshList: (offset?: number, animated?: boolean) => void;
flatList: FlatList | null;
}