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