listBuilder<T> static method
Widget
listBuilder<T>({
- required RxList<
T> dataList, - required ChildItemBuilder<
T> childItemBuilder, - OnItemClick<
T> ? onItemClick, - OnItemDoubleClick<
T> ? onItemDoubleClick, - OnItemLongClick<
T> ? onItemLongClick, - ScrollController? scrollController,
- EdgeInsetsGeometry? padding,
- ScrollPhysics? physics,
- bool shrinkWrap = false,
- bool isNeedEmpty = false,
- String emptyText = '暂无数据',
- EdgeInsets? emptyMargin,
- VoidCallback? onEmptyTap,
快速构建ListView
Implementation
static Widget listBuilder<T>({
required RxList<T> dataList,
required ChildItemBuilder<T> childItemBuilder,
OnItemClick<T>? onItemClick,
OnItemDoubleClick<T>? onItemDoubleClick,
OnItemLongClick<T>? onItemLongClick,
ScrollController? scrollController,
EdgeInsetsGeometry? padding,
ScrollPhysics? physics,
bool shrinkWrap = false,
bool isNeedEmpty = false,
String emptyText = '暂无数据',
EdgeInsets? emptyMargin,
VoidCallback? onEmptyTap,
}) {
emptyMargin ??= EdgeInsets.only(top: 120, bottom: 248);
return Obx(
() => Stack(
children: [
Visibility(
visible: isNeedEmpty && dataList.isEmpty,
child: SingleChildScrollView(
child: PublicWidget.createEmptyView(
emptyText: emptyText,
margin: emptyMargin!,
onTap: onEmptyTap,
),
),
),
Visibility(
visible: !(isNeedEmpty && dataList.isEmpty),
child: ListView.builder(
itemCount: dataList.length,
controller: scrollController,
physics: physics,
padding: padding ?? const EdgeInsets.all(0),
shrinkWrap: shrinkWrap,
itemBuilder: (context, index) {
T item = dataList[index];
return BaseItemWidget(
childItemBuilder: childItemBuilder,
item: item,
index: index,
onItemClick: onItemClick,
onItemDoubleClick: onItemDoubleClick,
onItemLongClick: onItemLongClick,
);
},
),
),
],
),
);
}