功能预览
本文对 TUILiveKit 中的语聊房直播列表页面进行了详细的介绍。您可以在已有项目中直接参考本文档集成我们开发好的直播列表页面,也可以根据您的需求按照文档中的内容对页面的样式,布局以及功能项进行深度的定制。
双列瀑布流:默认以双列卡片形式展示语聊房列表。

快速接入
步骤 1: 开通服务
步骤 2: 代码集成
步骤 3: 添加直播列表瀑布流视图
语聊房场景目前仅支持双列瀑布流样式。
import android.content.Contextimport android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport com.trtc.uikit.livekit.features.livelist.LiveListViewimport com.trtc.uikit.livekit.features.livelist.Styleclass YourActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// 1.创建并初始化瀑布流视图val view = createLiveListView(this)// 2.将创建的 LiveListView 添加到您的 Activity 或 Fragment 中setContentView(view)}fun createLiveListView(context: Context): LiveListView {val liveListView = LiveListView(context)// 初始化为双列瀑布流liveListView.init(this, Style.DOUBLE_COLUMN)return liveListView}}
步骤 4: 实现直播列表页到观众观看页的跳转
直播列表会通过
OnItemClickListener 回调处理点击事件,您只需在直播列表瀑布流视图中实现 OnItemClickListener 来响应用户的点击事件,并在 onItemClick 中实现跳转进入观众观看页的功能,观众观看页实现可参考 观众观看 。交互示例:

代码示例:
fun createLiveListView(context: Context): LiveListView {val liveListView = LiveListView(context)// 初始化为双列瀑布流liveListView.init(this, Style.DOUBLE_COLUMN)liveListView.setOnItemClickListener { view, liveInfo ->// 点击直播列表项时,跳转进入到观众观看页面val intent = Intent(context, YourAudienceActivity::class.java)intent.putExtra("liveId", liveInfo.roomId)context.startActivity(intent)}return liveListView}
自定义您的界面布局
TUILiveKit 提供了灵活的接口定制直播列表瀑布流组件,您可以根据业务需求自定义数据源和列表项样式。自定义数据源
如果您的后台有单独的直播列表数据,可以通过实现
LiveListDataSource 接口来自定义数据源,而不使用组件默认的列表数据。// 1.导入依赖import com.trtc.uikit.livekit.features.livelist.LiveListDataSource;// 2.通过实现 LiveListDataSource 自定义数据源val dataSource = object : LiveListDataSource {override fun fetchLiveList(param: FetchLiveListParam,callback: LiveListCallback) {// 对接自己的业务后台,按照下面的格式返回数据给UI组件val liveInfoList = mutableListOf<TUILiveListManager.LiveInfo>()val liveInfo = TUILiveListManager.LiveInfo().apply {roomInfo = TUIRoomDefine.RoomInfo().apply {roomId = "live_123456"name = "live_123456"}}liveInfoList.add(liveInfo)val cursor = "aabbccdd"callback.onSuccess(cursor, liveInfoList)}}// 3.初始化时传入自定义的 dataSourceliveListView.init(this, Style.DOUBLE_COLUMN, dataSource = dataSource)
自定义挂件
瀑布流列表项默认显示房间封面。如果您需要自定义列表项顶部的
UI 元素(例如主播头像、直播标题等),可以通过实现 LiveListViewAdapter 接口来完成。// 1.导入依赖import com.trtc.uikit.livekit.features.livelist.LiveListViewAdapter;// 2.通过实现 LiveListViewAdapter 自定义挂件val liveListViewAdapter = object : LiveListViewAdapter {override fun createLiveInfoView(liveInfo: TUILiveListManager.LiveInfo): View {// 自定义挂件 viewval widgetView = YourView(context)widgetView.init(liveInfo)return widgetView}override fun updateLiveInfoView(view: View, liveInfo: TUILiveListManager.LiveInfo) {// 更新挂件 view 中绑定的数据val widgetView = view as YourViewwidgetView.updateLiveInfoView(liveInfo)}}// 3.初始化时传入自定义的 liveListViewAdapterliveListView.init(this, Style.DOUBLE_COLUMN, adapter = liveListViewAdapter)
下一步
恭喜您,现在您已经成功集成了直播列表功能。接下来,您可以实现主播开播、观众观看等功能,可参考下表:
常见问题
集成直播列表功能后页面没有任何直播怎么办?
我使用了自定义数据源 (LiveListDataSource),但列表不显示/不刷新怎么办?
请确保您正确实现了
LiveListDataSource 接口。重点检查以下几点:1. 检查
fetchLiveList 方法是否被正确调用。2. 确保在获取数据后(无论成功或失败)都调用了
callback.onSuccess 或 callback.onFailure。3. 检查您的业务后台接口是否返回了正确的数据格式。