Android(Compose)
本文会引导您构建会话列表界面。
开发环境要求
Android Studio Ladybug(2024.2.1)及之后的版本,JDK 17。
Android 6.0(API 23)及以上真机或模拟器。
前置条件
在构建界面之前,请确保您已经完成了以下 4 件事:
1. 在控制台创建了一个应用。
2. 在控制台创建了至少 2 个用户账号。
3. 集成了
TUIKit Compose。4. 调用
LoginStore 的 login 接口登录组件。注意:
每次启动应用,登录一次即可。
请确保登录成功,我们建议您在登录成功的回调里进行下文的操作。
如果您已经完成,请继续阅读下文。
步骤说明
注意:
如果您事先没有跟任何人、任何群组发送过消息,是不会产生会话的,此时加载 ConversationList ,列表为空。为了体验效果,建议您先给一些账号发送消息,触发会话的产生。如果您想了解如何在聊天界面发送消息,请参考文档:构建聊天界面。
会话列表界面由 ConversationList 这个
@Composable 组件构成。你可以在 onConversationClick 回调中处理点击会话列表项事件。注意,如果你直接使用我们的示例代码,需要预填充这几个参数:
sdkAppID,上文获取的 sdkAppID。userID,操作者的 userID,也就是 快速开始 中创建的 user1。userSig,操作者的 userSig,也就是 快速开始 中创建的 user1 的 userSig。App 启动即加载会话列表页,示例代码如下:
// ConversationListActivity.ktimport android.os.Bundleimport androidx.activity.compose.setContentimport androidx.appcompat.app.AppCompatActivityimport androidx.compose.foundation.backgroundimport androidx.compose.foundation.layout.Columnimport androidx.compose.foundation.layout.Rowimport androidx.compose.foundation.layout.fillMaxSizeimport androidx.compose.foundation.layout.fillMaxWidthimport androidx.compose.foundation.layout.heightimport androidx.compose.foundation.layout.paddingimport androidx.compose.foundation.layout.statusBarsPaddingimport androidx.compose.material3.HorizontalDividerimport androidx.compose.material3.Textimport androidx.compose.ui.Alignmentimport androidx.compose.ui.Modifierimport androidx.compose.ui.text.font.FontWeightimport androidx.compose.ui.unit.dpimport androidx.compose.ui.unit.spimport io.trtc.tuikit.chat.uikit.components.theme.LocalThemeimport io.trtc.tuikit.chat.uikit.components.conversationlist.ui.ConversationListimport io.trtc.tuikit.atomicxcore.api.CompletionHandlerimport io.trtc.tuikit.atomicxcore.api.login.LoginStoreclass ConversationListActivity : AppCompatActivity() {private val sdkAppID: Int = 1234567890 // TODO: Fill in your sdkAppID hereprivate val userID = "" // TODO: Fill in your userID hereprivate val userSig = "" // TODO: Fill in your generated userSig hereoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)login()}private fun login() {LoginStore.shared.login(this, sdkAppID, userID, userSig, object : CompletionHandler {override fun onSuccess() {showConversationListPage()}override fun onFailure(code: Int, desc: String) {// Handle login failure}})}private fun showConversationListPage() {setContent {val colors = LocalTheme.current.colorsColumn(modifier = Modifier.fillMaxSize().background(color = colors.bgColorOperate).statusBarsPadding()) {// Navigation BarRow(modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp).height(44.dp),verticalAlignment = Alignment.CenterVertically) {Text(text = "会话列表",fontSize = 17.sp,fontWeight = FontWeight.W600,color = colors.textColorPrimary)}HorizontalDivider(color = colors.strokeColorPrimary)// ConversationListConversationList(onConversationClick = { conversation ->// Handle conversation click, e.g. navigate to ChatPage// conversation.conversationID})}}}}
运行效果示意图:

