AnimatedFutureListBuilder<T> constructor
AnimatedFutureListBuilder<T> ({
- required Future<
List< future,T> > - required DataBuilder<
List< builder,T> ?> - ErrorBuilder? error,
- WidgetBuilder? loading,
- WidgetBuilder? empty,
- WidgetBuilder? nullBuilder,
- List<
T> ? initialData, - Duration duration = const Duration(milliseconds: 300),
- Duration? reverseDuration,
- Curve switchInCurve = Curves.linear,
- Curve switchOutCurve = Curves.linear,
- AnimatedSwitcherTransitionBuilder transitionBuilder = AnimatedSwitcher.defaultTransitionBuilder,
- AnimatedSwitcherLayoutBuilder layoutBuilder = AnimatedSwitcher.defaultLayoutBuilder,
Implementation
AnimatedFutureListBuilder({
required Future<List<T>> future,
required DataBuilder<List<T>?> builder,
ErrorBuilder? error,
WidgetBuilder? loading,
WidgetBuilder? empty,
WidgetBuilder? nullBuilder,
List<T>? initialData,
Duration duration = const Duration(milliseconds: 300),
Duration? reverseDuration,
Curve switchInCurve = Curves.linear,
Curve switchOutCurve = Curves.linear,
AnimatedSwitcherTransitionBuilder transitionBuilder =
AnimatedSwitcher.defaultTransitionBuilder,
AnimatedSwitcherLayoutBuilder layoutBuilder =
AnimatedSwitcher.defaultLayoutBuilder,
}) : super(
initialData: initialData,
future: future,
builder: (context, snapshot) {
Widget? widget;
switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.waiting:
if (loading != null) {
widget = loading(context);
} else {
widget = Container();
}
break;
case ConnectionState.active:
case ConnectionState.done:
if (snapshot.hasError) {
if (error != null) {
widget = error(context, snapshot.error);
} else {
widget = Text('${snapshot.error}');
}
} else {
if (snapshot.hasData) {
if (snapshot.data!.isEmpty) {
if (empty != null) {
widget = empty(context);
} else {
widget = builder(context, snapshot.data);
}
} else {
widget = builder(context, snapshot.data);
}
} else {
if (nullBuilder != null) {
widget = nullBuilder(context);
} else {
widget = builder(context, snapshot.data);
}
}
}
break;
}
return AnimatedSwitcher(
duration: duration,
child: widget,
reverseDuration: reverseDuration,
switchInCurve: switchInCurve,
switchOutCurve: switchOutCurve,
transitionBuilder: transitionBuilder,
layoutBuilder: layoutBuilder,
);
},
);