tencent cloud

Chat

제품 소개
제품 개요
Basic Concepts
응용 시나리오
기능 소개
계정 시스템
사용자 정보 및 관계망
메시지 관리
그룹 시스템
Official Account
Audio/Video Call
사용 제한
구매 가이드
과금 개요
요금 안내
Purchase Instructions
Renewal Guide
연체 안내
Refund Policy
다운로드 센터
SDK & Demo 소스 코드
업데이트 로그
시나리오 솔루션
Live Streaming Setup Guide
AI Chatbot
대규모 엔터테인먼트 협업 커뮤니티
Discord 구현 가이드
IM을 게임에 통합하는 방법
WhatsApp Channel-style Official Account Integration Solution
Send Red Packet
Firewall Restrictions
클라이언트 APIs
SDK API(Web)
Android
iOS & macOS
Swift
Flutter
Electron
Unity
React Native
C APIs
C++
서버 APIs
Secure authentication with UserSig
RESTful APIs
Webhooks
콘솔 가이드
New Console Introduction
애플리케이션 생성 및 업그레이드
기본 설정
기능 설정
계정 관리
그룹 관리
Official Channel Management
콜백 설정
모니터링 대시보드
Viewing Guide for Resource Packages
Real-Time Monitor
개발 보조 툴
액세스 관리
Advanced Features
FAQ
uni-app FAQs
구매
SDK 관련 질문
계정 인증
사용자 정보 및 관계망
메시지
그룹
라이브 방송 그룹
닉네임 및 프로필 사진
협약 및 인증
Service Level Agreement
컴플라이언스 인증
IM 정책
개인 정보 보호 정책
데이터 개인 정보 보호 및 보안 계약
에러 코드
문의하기
문서Chat

Flutter

포커스 모드
폰트 크기
마지막 업데이트 시간: 2026-03-02 17:55:06

Component Overview

MessageList is a Flutter component designed for displaying and managing chat messages. It supports a wide range of message types, including:
Text, image, video, voice, file, system notification, emoji messages, and more.
Message actions via long-press menus, such as copy, delete, recall, and custom actions.
Extensive customization: configure bubble color, corner radius, font, and add custom actions.
Chat Message List
Message Long-Press Menu




MessageList is available as part of TUIKit Flutter. To integrate MessageList, add TUIKit Flutter to your project. For detailed setup instructions, refer to the TUIKit Flutter documentation.

Component Structure

MessageList exposes only its initialization method; all other internal logic is fully encapsulated.

Public Methods

Method
Parameters
Description
MessageList
conversationID: String
Initializes MessageList and sets the conversation ID.
For C2C Chat, use the format c2c_userID.
For group chat, use group_groupID.
config: MessageListConfigProtocol
Initializes MessageList and applies the specified message list style.
customActions: List
Initializes MessageList with custom long-press menu options.
locateMessage: MessageInfo?
Initializes MessageList and scrolls to a specific message. Useful when navigating from search results to a specific message.
onUserClick: (String userID) {}
Initializes MessageList and sets a handler for avatar click events.

Basic Usage

To initialize MessageList, provide a conversation ID. We recommend implementing onUserClick for avatar interactions.
MessageList(
conversationID: 'conversation_123',
onUserClick: (String userID) {
// Handle avatar click event
},
),

Customization

MessageList supports flexible style and action customization.

Custom Styles

Implement MessageListConfigProtocol to define custom styles:
class MyCustomConfig extends MessageListConfigProtocol {
@override
String get alignment => AppBuilder.MESSAGE_ALIGNMENT_TWO_SIDED;

@override
bool get isShowTimeMessage => true;

@override
bool get isShowLeftAvatar => true;

@override
bool get isShowLeftNickname => true;

@override
bool get isShowRightAvatar => true;

@override
bool get isShowRightNickname => true;

// ... other required properties
}

// Apply custom style
MessageList(
conversationID: 'conversation_123',
config: MyCustomConfig(),
);
MessageListConfigProtocol Property Reference
Property
Type
Description
Remarks
alignment
String
Message alignment
MessageAlignment.LEFT:Left aligned.
MessageAlignment.RIGHT:Right aligned.
MessageAlignment.TWO_SIDED:Both sides aligned.
isShowTimeMessage
bool
Show timestamp messages
Controls whether message timestamps are displayed.
isShowLeftAvatar
bool
Show left avatar
Show sender's avatar for received messages.
isShowLeftNickname
bool
Show left nickname
Show sender's nickname for received messages.
isShowRightAvatar
bool
Show right avatar
Show your avatar for sent messages.
isShowRightNickname
bool
Show right nickname
Show your nickname for sent messages.
isShowTimeInBubble
bool
Show time inside bubble
Display timestamp inside the message bubble.
cellSpacing
double
Message spacing
Set the space between adjacent messages.
isShowSystemMessage
bool
Show system notification
Display system notification messages.
isShowUnsupportMessage
bool
Show unsupported messages
Display messages of unsupported types.
horizontalPadding
double
Horizontal padding
Set left and right padding for the message list.
avatarSpacing
double
Avatar spacing
Set spacing between avatar and message content.
isSupportCopy
bool
Enable copy action in menu
true: Enable copy action
false: Disable copy action
isSupportDelete
bool
Enable delete action in menu
true: Enable delete action
false: Disable delete action
isSupportRecall
bool
Enable recall action in menu
true:Enable recall action
false: Disable recall action

Custom Actions

You can customize the long-press menu actions using several approaches.

Option A: Locally Hide or Show Action Items

Set isSupportCopy, isSupportDelete, and isSupportRecall in the config to show or hide specific actions:
MessageList(
conversationID: 'conversation_123',
config: ChatMessageListConfig(isSupportCopy: false),
);

Option B: Locally Add Custom Action Items

Pass custom actions to MessageList. These will be added below the default menu options:
MessageList(
conversationID: 'conversation_123',
customActions: [
MessageCustomAction(
title: 'Share',
systemIconFallback: Icons.share,
action: (MessageInfo messageInfo) {
print('share message');
},
)
],
);

Option C: Configure Action Item Globally

Configure menu actions globally using AppBuilderConfig:
// Set global configuration at app startup
await AppBuilder.init();
AppBuilder.getInstance().messageListConfig = MessageListConfig(
messageActionList: [
AppBuilder.MESSAGE_ACTION_COPY,
AppBuilder.MESSAGE_ACTION_DELETE,
AppBuilder.MESSAGE_ACTION_RECALL,
],
// other options
);

// All MessageList instances will inherit the global configuration
MessageList(
conversationID: 'conversation_123',
);
Note:
Local configurations override global configuration settings.
Message List Actions
(Default Options)
Message List Actions
(Copy Option Hidden)
Message List Actions
(Share Option Added)





도움말 및 지원

문제 해결에 도움이 되었나요?

피드백