fix: wrap room card long badge inline

This commit is contained in:
zhx 2026-05-18 11:18:54 +08:00
parent d009f9cc01
commit 660f712ae6

View File

@ -332,15 +332,17 @@ class _RoomUserInfoCardState extends State<RoomUserInfoCard> {
),
),
SizedBox(height: 5.w),
Row(
mainAxisAlignment: MainAxisAlignment.center,
Wrap(
alignment: WrapAlignment.center,
crossAxisAlignment: WrapCrossAlignment.center,
spacing: 4.w,
runSpacing: 5.w,
children: [
msgRoleTag(
ref.userCardInfo?.roomRole ?? "",
width: 16.w,
height: 16.w,
),
SizedBox(width: 4.w),
socialchatNickNameText(
maxWidth: 116.w,
profile?.userNickname ?? "",
@ -350,13 +352,11 @@ class _RoomUserInfoCardState extends State<RoomUserInfoCard> {
type: "",
needScroll: (profile?.userNickname?.characters.length ?? 0) > 12,
),
SizedBox(width: 3.w),
getVIPBadge(
profile?.vipLevel ?? profile?.getVIP()?.name,
width: 45.w,
height: 25.w,
),
SizedBox(width: 3.w),
getWealthLevel(
profile?.wealthLevel ??
ref.userCardInfo?.userLevel?.wealthLevel ??
@ -365,7 +365,6 @@ class _RoomUserInfoCardState extends State<RoomUserInfoCard> {
height: 20.w,
fontSize: 9.sp,
),
SizedBox(width: 2.w),
getUserLevel(
profile?.charmLevel ??
ref.userCardInfo?.userLevel?.charmLevel ??
@ -374,6 +373,11 @@ class _RoomUserInfoCardState extends State<RoomUserInfoCard> {
height: 20.w,
fontSize: 9.sp,
),
_buildHeaderLongBadgeStrip(
profile?.id ?? widget.userId,
ref,
profile,
),
],
),
SizedBox(height: 2.w),
@ -490,6 +494,27 @@ class _RoomUserInfoCardState extends State<RoomUserInfoCard> {
);
}
Widget _buildHeaderLongBadgeStrip(
String? userId,
SocialChatUserProfileManager ref,
SocialChatUserProfile? profile,
) {
return ConstrainedBox(
constraints: BoxConstraints(maxWidth: 64.w),
child: SCUserBadgeStrip(
userId: userId,
fallbackBadges: _roomCardFallbackBadges(ref, profile),
displayScope: SCUserBadgeDisplayScope.long,
height: 22.w,
badgeHeight: 20.w,
longBadgeWidth: 62.w,
spacing: 0,
maxBadges: 1,
reserveSpace: false,
),
);
}
Widget _buildBadgeStrip(
String? userId,
SocialChatUserProfileManager ref,
@ -498,14 +523,14 @@ class _RoomUserInfoCardState extends State<RoomUserInfoCard> {
return SCUserBadgeStrip(
userId: userId,
fallbackBadges: _roomCardFallbackBadges(ref, profile),
displayScope: SCUserBadgeDisplayScope.long,
displayScope: SCUserBadgeDisplayScope.short,
height: 82.w,
badgeHeight: 34.5.w,
longBadgeWidth: 87.w,
spacing: 10.w,
maxBadges: 12,
wrap: true,
reserveSpace: true,
reserveSpace: false,
);
}