fix(chat): 修复会话列表中标题显示异常问题
This commit is contained in:
parent
319ed953a7
commit
f40ed4d7fb
|
|
@ -16,6 +16,7 @@ import 'package:tencent_cloud_chat_uikit/ui/widgets/unread_message.dart';
|
|||
import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/theme/color.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/theme/tui_theme.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/platform.dart';
|
||||
|
||||
typedef LastMessageBuilder = Widget? Function(V2TimMessage? lastMsg, List<V2TimGroupAtInfo?> groupAtInfoList);
|
||||
|
||||
|
|
@ -53,13 +54,20 @@ class TIMUIKitConversationItem extends TIMUIKitStatelessWidget {
|
|||
|
||||
Widget _getShowMsgWidget(BuildContext context) {
|
||||
final isDesktopScreen = TUIKitScreenUtils.getFormFactor(context) == DeviceType.Desktop;
|
||||
final isAndroid = PlatformUtils().isAndroid;
|
||||
|
||||
// 针对安卓设备的字体大小调整
|
||||
final msgFontSize = isDesktopScreen
|
||||
? 12.0
|
||||
: (isAndroid ? 13.0 : 14.0); // 安卓设备使用稍小的字体
|
||||
|
||||
if (lastMsg != null && lastMessageBuilder != null && lastMessageBuilder!(lastMsg, groupAtInfoList) != null) {
|
||||
return lastMessageBuilder!(lastMsg, groupAtInfoList)!;
|
||||
}
|
||||
|
||||
if (lastMsg != null || (draftText != null && draftText != "")) {
|
||||
return TIMUIKitLastMsg(
|
||||
fontSize: isDesktopScreen ? 12 : 14,
|
||||
fontSize: msgFontSize,
|
||||
groupAtInfoList: groupAtInfoList,
|
||||
lastMsg: lastMsg,
|
||||
isDisturb: isDisturb,
|
||||
|
|
@ -102,6 +110,13 @@ class TIMUIKitConversationItem extends TIMUIKitStatelessWidget {
|
|||
Widget tuiBuild(BuildContext context, TUIKitBuildValue value) {
|
||||
final TUITheme theme = value.theme;
|
||||
final isDesktopScreen = TUIKitScreenUtils.getFormFactor(context) == DeviceType.Desktop;
|
||||
final isAndroid = PlatformUtils().isAndroid;
|
||||
|
||||
// 针对安卓设备的字体大小调整
|
||||
final titleFontSize = isDesktopScreen
|
||||
? 14.0
|
||||
: (isAndroid ? 16.0 : 18.0); // 安卓设备使用稍小的字体
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.only(top: 6, bottom: 6, left: 16, right: 16),
|
||||
decoration: BoxDecoration(
|
||||
|
|
@ -150,8 +165,10 @@ class TIMUIKitConversationItem extends TIMUIKitStatelessWidget {
|
|||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
Flexible(
|
||||
flex: 3,
|
||||
child: Text(
|
||||
nickName,
|
||||
softWrap: true,
|
||||
|
|
@ -161,11 +178,17 @@ class TIMUIKitConversationItem extends TIMUIKitStatelessWidget {
|
|||
style: TextStyle(
|
||||
height: 1,
|
||||
color: theme.conversationItemTitleTextColor,
|
||||
fontSize: isDesktopScreen ? 14 : 18,
|
||||
fontSize: titleFontSize,
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
)),
|
||||
_getTimeStringForChatWidget(context, theme),
|
||||
Flexible(
|
||||
flex: 1,
|
||||
child: Container(
|
||||
margin: const EdgeInsets.only(left: 8),
|
||||
child: _getTimeStringForChatWidget(context, theme),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
if (isHaveSecondLine())
|
||||
|
|
@ -175,15 +198,25 @@ class TIMUIKitConversationItem extends TIMUIKitStatelessWidget {
|
|||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(child: _getShowMsgWidget(context)),
|
||||
Expanded(
|
||||
child: Container(
|
||||
constraints: const BoxConstraints(
|
||||
minHeight: 20,
|
||||
),
|
||||
child: _getShowMsgWidget(context),
|
||||
),
|
||||
),
|
||||
if (isDisturb)
|
||||
SizedBox(
|
||||
width: 18,
|
||||
height: 18,
|
||||
child: Icon(
|
||||
Icons.notifications_off,
|
||||
color: theme.conversationItemNoNotificationIconColor,
|
||||
size: isDesktopScreen ? 14 : 16.0,
|
||||
Container(
|
||||
margin: const EdgeInsets.only(left: 8),
|
||||
child: SizedBox(
|
||||
width: 18,
|
||||
height: 18,
|
||||
child: Icon(
|
||||
Icons.notifications_off,
|
||||
color: theme.conversationItemNoNotificationIconColor,
|
||||
size: isDesktopScreen ? 14 : 16.0,
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import 'package:tencent_cloud_chat_uikit/tencent_cloud_chat_uikit.dart';
|
|||
import 'package:tencent_cloud_chat_uikit/ui/utils/common_utils.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/message.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/screen_utils.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/utils/platform.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/DefaultSpecialTextSpanBuilder.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/theme/tui_theme.dart';
|
||||
import 'package:tencent_cloud_chat_uikit/theme/tui_theme_view_model.dart';
|
||||
|
|
@ -210,6 +211,7 @@ class _TIMUIKitLastMsgState extends TIMUIKitState<TIMUIKitLastMsg> {
|
|||
String disturbUnreadCountInfo = _getDisturbUnreadCountInfo();
|
||||
return Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
if (icon != null)
|
||||
Container(
|
||||
|
|
|
|||
Loading…
Reference in New Issue