会话列表(Builder 完全自定义 UI)
当 Config 配置无法满足需求时,可使用 Builder 完全自定义会话列表界面元素,包括:AppBar、单元格、头像、标题、最后一条消息、时间显示、未读角标、空态/顶部提示等。下文列出所有可用 Builder 类型,并提供实现示例。
入口组件
- 组件:
RCKConvoPage - 可用 Builder 类型:
ConvoAppBarBuilder(自定义顶部导航栏)ItemBuilder(自定义会话单元格整体布局)AvatarBuilder、TitleBuilder、LastMessageBuilder、TimeBuilder、UnreadBadgeBuilder(自定义局部元素)tipBuilder(自定义顶部提示区域)、emptyBuilder(自定义空状态界面)
示例:自定义单元格点击事件并注册消息气泡 Builder
Dart
itemOnTap(BuildContext context, RCIMIWConversation conversation, int index) {
context.read<RCKConvoProvider>().selectConversation(conversation);
Navigator.pushNamed(context, '/chat', arguments: {
'conversation': conversation,
'customChatItemBubbleBuilders': {
RCIMIWMessageType.nativeCustom: customChatItemBubbleBuilders
},
}).then((value) {
if (context.mounted) {
context.read<RCKConvoProvider>().popConversation();
}
});
}
return RCKConvoPage(
onItemTap: itemOnTap,
);
示例:自定义头像和标题渲染
Dart
RCKConvoPage(
avatarBuilder: (context, conversation, config) => CircleAvatar(...),
titleBuilder: (context, conversation, config) => Text(conversation.name ?? ''),
)