CometChatGroups renders a scrollable list of all available groups with real-time updates for membership changes, search, avatars, and group type indicators (public, private, password-protected).

Where It Fits
CometChatGroups is a list component. It renders all available groups and emits the selected Group via onItemClick. Wire it to CometChatMessageHeader, CometChatMessageList, and CometChatMessageComposer to build a group messaging layout.
- Kotlin (XML Views)
- Jetpack Compose
activity_chat.xml
Quick Start
- Kotlin (XML Views)
- Jetpack Compose
Add to your layout XML:Or programmatically:
CometChatUIKit.init(), a user logged in, and the UI Kit dependency added.
Or in a Fragment:
- Kotlin (XML Views)
- Jetpack Compose
Filtering Groups
- Kotlin (XML Views)
- Jetpack Compose
Pass a
GroupsRequest.GroupsRequestBuilder to control what loads:Filter Recipes
| Recipe | Builder method |
|---|---|
| Joined only | .joinedOnly(true) |
| Limit per page | .setLimit(10) |
| Search by keyword | .setSearchKeyWord("design") |
| Filter by tags | .setTags(listOf("vip")) |
| With tags | .withTags(true) |
Actions and Events
Callback Methods
onItemClick
Fires when a group row is tapped. Primary navigation hook.
- Kotlin (XML Views)
- Jetpack Compose
Replaces the default item-click behavior. Your custom lambda executes instead of the built-in navigation.
onItemLongClick
Fires when a group row is long-pressed. Use for additional actions like delete or leave.
- Kotlin (XML Views)
- Jetpack Compose
onBackPress
Fires when the user presses the back button in the toolbar.
- Kotlin (XML Views)
- Jetpack Compose
onSearchClick
Fires when the user taps the search icon in the toolbar.
- Kotlin (XML Views)
- Jetpack Compose
onSelection
Fires when groups are selected/deselected in multi-select mode.
- Kotlin (XML Views)
- Jetpack Compose
onError
Fires on internal errors (network failure, auth issue, SDK exception).
- Kotlin (XML Views)
- Jetpack Compose
onLoad
Fires when the list is successfully fetched and loaded.
- Kotlin (XML Views)
- Jetpack Compose
onEmpty
Fires when the list is empty after loading.
- Kotlin (XML Views)
- Jetpack Compose
SDK Events (Real-Time, Automatic)
The component listens to these SDK events internally. No manual setup needed.| SDK Listener | Internal behavior |
|---|---|
onGroupMemberJoined | Updates the group list when a member joins |
onGroupMemberLeft | Updates the group list when a member leaves |
onGroupMemberKicked | Updates the group list when a member is kicked |
onGroupMemberBanned | Updates the group list when a member is banned |
onGroupMemberUnbanned | Updates the group list when a member is unbanned |
onGroupMemberScopeChanged | Updates the group list when a member’s scope changes |
onMemberAddedToGroup | Updates the group list when members are added |
Functionality
| Method (Kotlin XML) | Compose Parameter | Description |
|---|---|---|
setBackIconVisibility(View.VISIBLE) | hideBackIcon = false | Toggle back button |
setToolbarVisibility(View.GONE) | hideToolbar = true | Toggle toolbar |
setSearchBoxVisibility(View.GONE) | hideSearchBox = true | Toggle search box |
setGroupTypeVisibility(View.GONE) | hideGroupType = true | Toggle group type indicator |
setSeparatorVisibility(View.GONE) | hideSeparator = true | Toggle list separators |
setSelectionMode(MULTIPLE) | selectionMode = MULTIPLE | Enable selection mode |
setTitle("My Groups") | title = "My Groups" | Custom toolbar title |
setSearchPlaceholderText("Find...") | searchPlaceholderText = "Find..." | Search placeholder |
Custom View Slots
Leading View
Replace the avatar / left section.
- Kotlin (XML Views)
- Jetpack Compose
Title View
Replace the name / title text.
- Kotlin (XML Views)
- Jetpack Compose
Subtitle View
Replace the subtitle text below the group name.
- Kotlin (XML Views)
- Jetpack Compose
Trailing View
Replace the right section of each group item.
- Kotlin (XML Views)
- Jetpack Compose
Item View
Replace the entire list item row.
- Kotlin (XML Views)
- Jetpack Compose
State Views
- Kotlin (XML Views)
- Jetpack Compose
Overflow Menu

- Kotlin (XML Views)
- Jetpack Compose
Menu Options
- Kotlin (XML Views)
- Jetpack Compose
Common Patterns
Minimal list — hide all chrome
- Kotlin (XML Views)
- Jetpack Compose
Joined groups only
- Kotlin (XML Views)
- Jetpack Compose
Tagged groups
- Kotlin (XML Views)
- Jetpack Compose
Advanced Methods
Programmatic Selection
- Kotlin (XML Views)
- Jetpack Compose
ViewModel Access
- Kotlin (XML Views)
- Jetpack Compose
Style

- Kotlin (XML Views)
- Jetpack Compose
Define a custom style in
themes.xml:themes.xml
Style Properties
| Property | Description |
|---|---|
backgroundColor | List background color |
titleTextColor | Toolbar title color |
searchBoxStyle | Search box appearance |
itemStyle.backgroundColor | Row background |
itemStyle.selectedBackgroundColor | Selected row background |
itemStyle.titleTextColor | Group name color |
itemStyle.subtitleTextColor | Subtitle text color |
itemStyle.separatorColor | Row separator color |
itemStyle.avatarStyle | Avatar appearance |
itemStyle.statusIndicatorStyle | Group type indicator |
Next Steps
Group Members
View and manage group members
Conversations
Browse recent conversations
Component Styling
Detailed styling reference with screenshots
ViewModel & Data
Custom ViewModels, repositories, and ListOperations