AnimatedFutureBuilder<T> constructor
AnimatedFutureBuilder<T> ({
- required Future<
T> future, - required DataBuilder<
T?> builder, - WidgetBuilder? nullBuilder,
- ErrorBuilder? error,
- WidgetBuilder? loading,
- 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
AnimatedFutureBuilder({
required Future<T> future,
required DataBuilder<T?> builder,
WidgetBuilder? nullBuilder,
ErrorBuilder? error,
WidgetBuilder? loading,
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) {
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,
);
},
);