ListBuilder<T> constructor
ListBuilder<T> ({
- Key? key,
- required FieldControl<
List< control,T> > - required ControlWidgetBuilder<
List< builder,T> > - WidgetBuilder? noData,
- bool nullOk = false,
Stream based Widget builder. Listening FieldControlStream.stream
about changes.
control
- required Stream controller. FieldControl or FieldControlSub
.
builder
- required Widget builder. Only non empty List is passed directly to handle.
noData
- Widget to show, when List is empty.
nullOk
- Determine where to handle empty List. 'true' - empty List will be passed to builder
.
Implementation
ListBuilder({
super.key,
required FieldControl<List<T>> control,
required ControlWidgetBuilder<List<T>> builder,
WidgetBuilder? noData,
bool nullOk = false,
}) : super(
control: control,
builder: (context, snapshot) {
if ((snapshot.hasData && snapshot.data!.length > 0) || nullOk) {
return builder(context, snapshot.data ?? const []);
}
if (noData != null) {
return noData(context);
}
return Container();
},
);