createNetworkImage method
Widget
createNetworkImage(
- String url, {
- Map? extendParams,
- double? width,
- double? height,
- BorderRadius? borderRadius,
- bool isCache = true,
- String? imageCacheName = "v_nine_grid",
- LoadStateChanged? loadStateChanged,
- AnimationController? controller,
网络图片
考虑多种类型的公用参数方便 所以搞成map loadStateChanged传的话可以不传controller,否则必须传controller
Implementation
Widget createNetworkImage(String url,
{Map? extendParams,
double? width,
double? height,
// BoxFit fit = BoxFit.cover,
BorderRadius? borderRadius,
bool isCache = true,
String? imageCacheName = "v_nine_grid",
// InitGestureConfigHandler? initGestureConfigHandler,
// DoubleTap? onDoubleTap,
LoadStateChanged? loadStateChanged,
AnimationController? controller}) {
if (url.isEmpty) return const SizedBox();
return ExtendedImage.network(
url,
fit: extendParams?["fit"] ?? BoxFit.cover,
borderRadius: borderRadius,
enableLoadState: true,
cache: isCache,
enableSlideOutPage: extendParams?["enableSlideOutPage"] ?? false,
//是否开启滑动退出效果
mode: extendParams?["mode"] ?? ExtendedImageMode.none,
imageCacheName: imageCacheName,
initGestureConfigHandler: extendParams?["initGestureConfigHandler"],
//手势配置的回调(图片加载完成时).你可以根据图片的信息比如宽高,来初始化
onDoubleTap: extendParams?["onDoubleTap"],
//支持手势的时候,双击回调
// border: Border.all(color: Colors.red, width: 1.0),
shape: BoxShape.rectangle,
loadStateChanged: loadStateChanged ??
(ExtendedImageState state) {
switch (state.extendedImageLoadState) {
case LoadState.loading: //加载中。。。
if (controller != null) {
controller.reset();
}
return VImgLoading();
///if you don't want override completed widget
///please return null or state.completedWidget
//return null;
//return state.completedWidget;
case LoadState.completed: //加载完成
if (controller != null) {
controller.forward();
}
return FadeTransition(
opacity: controller!,
// CurvedAnimation(parent: controller!, curve: Curves.easeIn),
child: state.completedWidget
// ExtendedRawImage(
// //如果你想重写完成图片的 size 或者 sourceRect, 你可以通过使用 ExtendedRawImage 来完成
// image: state.extendedImageInfo?.image,
// width: 20,
// height: 30,
// ),
);
case LoadState.failed: //加载失败
if (controller != null) {
controller.reset();
}
state.imageProvider.evict();
return VImgLoadFailed(reloadClick: state.reLoadImage);
;
break;
}
},
);
}