|
@@ -1,6 +1,7 @@
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
|
|
|
+import 'package:nomo/app/extensions/widget_extension.dart';
|
|
|
import 'ix_image.dart';
|
|
import 'ix_image.dart';
|
|
|
|
|
|
|
|
/// 国旗/图标组件
|
|
/// 国旗/图标组件
|
|
@@ -139,7 +140,9 @@ class _CountryIconState extends State<CountryIcon> {
|
|
|
Widget build(BuildContext context) {
|
|
Widget build(BuildContext context) {
|
|
|
// 仅首次加载时显示占位符,切换时保持旧图片
|
|
// 仅首次加载时显示占位符,切换时保持旧图片
|
|
|
if (_isFirstLoad || _imagePath == null || _imageType == null) {
|
|
if (_isFirstLoad || _imagePath == null || _imageType == null) {
|
|
|
- return _buildPlaceholder();
|
|
|
|
|
|
|
+ return _buildPlaceholder().withShadow(
|
|
|
|
|
+ borderRadius: widget.borderRadius ?? 0,
|
|
|
|
|
+ );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 根据图片类型返回不同的组件
|
|
// 根据图片类型返回不同的组件
|
|
@@ -153,7 +156,7 @@ class _CountryIconState extends State<CountryIcon> {
|
|
|
fit: widget.fit ?? BoxFit.cover,
|
|
fit: widget.fit ?? BoxFit.cover,
|
|
|
placeholderBuilder: (context) => _buildPlaceholder(),
|
|
placeholderBuilder: (context) => _buildPlaceholder(),
|
|
|
),
|
|
),
|
|
|
- );
|
|
|
|
|
|
|
+ ).withShadow(borderRadius: widget.borderRadius ?? 0);
|
|
|
} else {
|
|
} else {
|
|
|
// png 类型使用 IXImage
|
|
// png 类型使用 IXImage
|
|
|
return IXImage(
|
|
return IXImage(
|
|
@@ -163,7 +166,7 @@ class _CountryIconState extends State<CountryIcon> {
|
|
|
height: widget.height,
|
|
height: widget.height,
|
|
|
borderRadius: widget.borderRadius,
|
|
borderRadius: widget.borderRadius,
|
|
|
fit: widget.fit,
|
|
fit: widget.fit,
|
|
|
- );
|
|
|
|
|
|
|
+ ).withShadow(borderRadius: widget.borderRadius ?? 0);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|