BuilderList2 method
Widget
BuilderList2({
- Key? key,
- required ValueListItemBuilder<
T> itemBuilder, - ValueBuilder<
int> ? separatorBuilder, - WidgetBuilder? emptyBuilder,
- ErrorBuilder? errorBuilder,
- WidgetBuilder? loadingBuilder,
- LoadingBuilderToSliver? loadingBuilderToSliver,
- ErrorBuilderToSliver? errorBuilderToSliver,
- bool sliver = false,
快速 从 ValueListenableBuilder 构建一个 ListView
- 内部类型为 AsyncData<List<T>>
sliver
是否对配置信息启用sliver 转换 ignore: non_constant_identifier_names
Implementation
Widget BuilderList2({
Key? key,
required ValueListItemBuilder<T> itemBuilder,
ValueBuilder<int>? separatorBuilder,
WidgetBuilder? emptyBuilder,
ErrorBuilder? errorBuilder,
WidgetBuilder? loadingBuilder,
LoadingBuilderToSliver? loadingBuilderToSliver,
ErrorBuilderToSliver? errorBuilderToSliver,
bool sliver = false,
}) {
return Builder2(
key: key,
errorBuilder: errorBuilder,
loadingBuilder: loadingBuilder,
loadingBuilderToSliver: loadingBuilderToSliver,
errorBuilderToSliver: errorBuilderToSliver,
sliver: sliver,
builder: (context, data, _) {
if (emptyBuilder != null && data.isEmpty) return emptyBuilder(context);
if (sliver) {
if (separatorBuilder != null) {
return SliverList.separated(
itemCount: data.length,
itemBuilder: (context, index) =>
itemBuilder(context, data[index], index),
separatorBuilder: separatorBuilder,
);
}
return SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => itemBuilder(context, data[index], index),
childCount: data.length,
),
);
}
if (separatorBuilder != null) {
return ListView.separated(
itemCount: data.length,
itemBuilder: (context, index) =>
itemBuilder(context, data[index], index),
separatorBuilder: separatorBuilder,
);
} else {
return ListView.builder(
itemCount: data.length,
itemBuilder: (context, index) =>
itemBuilder(context, data[index], index),
);
}
},
);
}