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