跳到主要内容

会话列表(Builder 完全自定义 UI)

当 Config 配置无法满足需求时,可使用 Builder 完全自定义会话列表界面元素,包括:AppBar、单元格、头像、标题、最后一条消息、时间显示、未读角标、空态/顶部提示等。下文列出所有可用 Builder 类型,并提供实现示例。

入口组件

  • 组件:RCKConvoPage
  • 可用 Builder 类型:
    • ConvoAppBarBuilder(自定义顶部导航栏)
    • ItemBuilder(自定义会话单元格整体布局)
    • AvatarBuilderTitleBuilderLastMessageBuilderTimeBuilderUnreadBadgeBuilder(自定义局部元素)
    • 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 ?? ''),
)

提示:如果仅需调整样式参数,建议优先使用 会话列表配置(Config 部分自定义 UI) 方案实现