RCKMessageBubble.create constructor
RCKMessageBubble.create({
- required BuildContext context,
- required RCIMIWMessage message,
- bool showTime = false,
- RCKBubbleConfig? config,
- Map<
RCIMIWMessageType, CustomChatItemBubbleBuilder> ? customChatItemBubbleBuilders, - MessageTapCallback? onTap,
- MessageDoubleTapCallback? onDoubleTap,
- MessageLongPressCallback? onLongPress,
- MessageSwipeCallback? onSwipe,
- MessageTapCallback? onAppendBubbleTap,
- MessageLongPressCallback? onAppendBubbleLongPress,
Implementation
factory RCKMessageBubble.create({
required BuildContext context,
required RCIMIWMessage message,
bool showTime = false,
RCKBubbleConfig? config, // 新增:气泡配置参数
Map<RCIMIWMessageType, CustomChatItemBubbleBuilder>?
customChatItemBubbleBuilders,
MessageTapCallback? onTap,
MessageDoubleTapCallback? onDoubleTap,
MessageLongPressCallback? onLongPress,
MessageSwipeCallback? onSwipe,
MessageTapCallback? onAppendBubbleTap,
MessageLongPressCallback? onAppendBubbleLongPress,
}) {
RCKMessageBubble bubble;
if (customChatItemBubbleBuilders != null &&
customChatItemBubbleBuilders.containsKey(message.messageType)) {
bubble = customChatItemBubbleBuilders[message.messageType]!(
message: message,
showTime: showTime,
config: config,
context: context);
} else {
switch (message.messageType) {
case RCIMIWMessageType.text:
bubble = RCKTextMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe);
break;
case RCIMIWMessageType.unknown:
bubble = RCKUnknownMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe);
break;
case RCIMIWMessageType.voice:
bubble = RCKVoiceMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe,
onAppendBubbleTap: onAppendBubbleTap,
onAppendBubbleLongPress: onAppendBubbleLongPress);
break;
case RCIMIWMessageType.image:
case RCIMIWMessageType.gif:
bubble = RCKImageMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe);
break;
case RCIMIWMessageType.sight:
bubble = RCKSightMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe);
break;
case RCIMIWMessageType.file:
bubble = RCKFileMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe);
break;
case RCIMIWMessageType.reference:
bubble = RCKReferenceMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe);
break;
case RCIMIWMessageType.recall:
bubble = RCKRecallMessageBubble(
message: message,
showTime: showTime,
config: config,
);
break;
// 在这里添加其他消息类型的实现
default:
bubble = RCKTextMessageBubble(
message: message,
showTime: showTime,
config: config,
onTap: onTap,
onDoubleTap: onDoubleTap,
onLongPress: onLongPress,
onSwipe: onSwipe); // 默认使用文本消息气泡
}
}
return bubble;
}