feat:设置头像为默认圆形
This commit is contained in:
parent
69154d528d
commit
4cf3be0670
|
|
@ -20,7 +20,9 @@ class Avatar extends TIMUIKitStatelessWidget {
|
|||
final V2TimUserStatus? onlineStatus;
|
||||
final int? type; // 1 c2c 2 group
|
||||
final bool isShowBigWhenClick;
|
||||
final TUISelfInfoViewModel selfInfoViewModel = serviceLocator<TUISelfInfoViewModel>();
|
||||
final bool isCircle; // 是否显示为圆形头像
|
||||
final TUISelfInfoViewModel selfInfoViewModel =
|
||||
serviceLocator<TUISelfInfoViewModel>();
|
||||
|
||||
Avatar(
|
||||
{Key? key,
|
||||
|
|
@ -30,6 +32,7 @@ class Avatar extends TIMUIKitStatelessWidget {
|
|||
this.isShowBigWhenClick = false,
|
||||
this.isFromLocalAsset = false,
|
||||
this.borderRadius,
|
||||
this.isCircle = true,
|
||||
this.type = 1})
|
||||
: super(key: key);
|
||||
|
||||
|
|
@ -37,18 +40,24 @@ class Avatar extends TIMUIKitStatelessWidget {
|
|||
Widget defaultAvatar() {
|
||||
if (type == 1) {
|
||||
return Image.asset(
|
||||
TencentUtils.checkString(selfInfoViewModel.globalConfig?.defaultAvatarAssetPath) ??
|
||||
TencentUtils.checkString(
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath) ??
|
||||
'images/default_c2c_head.png',
|
||||
fit: BoxFit.cover,
|
||||
package:
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath != null ? null : 'tencent_cloud_chat_uikit');
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath != null
|
||||
? null
|
||||
: 'tencent_cloud_chat_uikit');
|
||||
} else {
|
||||
return Image.asset(
|
||||
TencentUtils.checkString(selfInfoViewModel.globalConfig?.defaultAvatarAssetPath) ??
|
||||
TencentUtils.checkString(
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath) ??
|
||||
'images/default_group_head.png',
|
||||
fit: BoxFit.cover,
|
||||
package:
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath != null ? null : 'tencent_cloud_chat_uikit');
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath != null
|
||||
? null
|
||||
: 'tencent_cloud_chat_uikit');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -76,19 +85,27 @@ class Avatar extends TIMUIKitStatelessWidget {
|
|||
ImageProvider defaultAvatar() {
|
||||
if (type == 1) {
|
||||
return Image.asset(
|
||||
TencentUtils.checkString(selfInfoViewModel.globalConfig?.defaultAvatarAssetPath) ??
|
||||
TencentUtils.checkString(selfInfoViewModel
|
||||
.globalConfig?.defaultAvatarAssetPath) ??
|
||||
'images/default_c2c_head.png',
|
||||
fit: BoxFit.cover,
|
||||
package:
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath != null ? null : 'tencent_cloud_chat_uikit')
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath !=
|
||||
null
|
||||
? null
|
||||
: 'tencent_cloud_chat_uikit')
|
||||
.image;
|
||||
} else {
|
||||
return Image.asset(
|
||||
TencentUtils.checkString(selfInfoViewModel.globalConfig?.defaultAvatarAssetPath) ??
|
||||
TencentUtils.checkString(selfInfoViewModel
|
||||
.globalConfig?.defaultAvatarAssetPath) ??
|
||||
'images/default_group_head.png',
|
||||
fit: BoxFit.cover,
|
||||
package:
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath != null ? null : 'tencent_cloud_chat_uikit')
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarAssetPath !=
|
||||
null
|
||||
? null
|
||||
: 'tencent_cloud_chat_uikit')
|
||||
.image;
|
||||
}
|
||||
}
|
||||
|
|
@ -109,6 +126,16 @@ class Avatar extends TIMUIKitStatelessWidget {
|
|||
Widget tuiBuild(BuildContext context, TUIKitBuildValue value) {
|
||||
final TUITheme theme = value.theme;
|
||||
|
||||
// 根据isCircle参数决定borderRadius
|
||||
BorderRadius getAvatarBorderRadius() {
|
||||
if (isCircle) {
|
||||
return BorderRadius.circular(200); // 使用大圆角值来实现圆形效果
|
||||
}
|
||||
return borderRadius ??
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarBorderRadius ??
|
||||
BorderRadius.circular(4.8);
|
||||
}
|
||||
|
||||
return Stack(
|
||||
fit: StackFit.expand,
|
||||
clipBehavior: Clip.none,
|
||||
|
|
@ -119,24 +146,22 @@ class Avatar extends TIMUIKitStatelessWidget {
|
|||
Navigator.of(context).push(
|
||||
PageRouteBuilder(
|
||||
opaque: false, // set to false
|
||||
pageBuilder: (_, __, ___) => ImageScreen(imageProvider: getImageProvider(), heroTag: faceUrl),
|
||||
pageBuilder: (_, __, ___) => ImageScreen(
|
||||
imageProvider: getImageProvider(), heroTag: faceUrl),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: Hero(
|
||||
tag: faceUrl,
|
||||
child: ClipRRect(
|
||||
borderRadius: borderRadius ??
|
||||
selfInfoViewModel.globalConfig?.defaultAvatarBorderRadius ??
|
||||
BorderRadius.circular(4.8),
|
||||
borderRadius: getAvatarBorderRadius(),
|
||||
child: getImageWidget(context, theme),
|
||||
),
|
||||
),
|
||||
),
|
||||
if (!isShowBigWhenClick)
|
||||
ClipRRect(
|
||||
borderRadius:
|
||||
borderRadius ?? selfInfoViewModel.globalConfig?.defaultAvatarBorderRadius ?? BorderRadius.circular(4.8),
|
||||
borderRadius: getAvatarBorderRadius(),
|
||||
child: getImageWidget(context, theme),
|
||||
),
|
||||
if (onlineStatus?.statusType != null && onlineStatus?.statusType != 0)
|
||||
|
|
|
|||
1008
pubspec.lock
1008
pubspec.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue