You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose如何复用@Composable列表容器适配多类型条目

解决方案

核心思路是利用 Compose 泛型 + 内容插槽的特性,抽离公共列表逻辑,把差异化的条目渲染逻辑作为参数传入通用容器。

1. 定义通用列表容器组件

// 泛型T适配不同的数据类类型,itemContent参数接收对应条目的渲染逻辑
@Composable
fun <T> CommonSection(
    list: List<T>,
    itemContent: @Composable (T) -> Unit
) {
    Column {
        list.forEach { item ->
            itemContent(item)
        }
    }
}

2. 替换原有条件分支的调用逻辑

when (tabToDisplay) {
    TabCategory.1 -> CommonSection(
        list = listOf<Object1>()
    ) { item ->
        // 传入Object1对应的条目组件
        UiItem1(item)
    }
    TabCategory.2 -> CommonSection(
        list = listOf<Object2>()
    ) { item ->
        // 传入Object2对应的条目组件
        UiItem2(item)
    }
}

可选优化

如果列表数据量较大,可直接将通用组件内的Column替换为LazyColumn获得条目复用能力,外层调用逻辑无需改动。


内容的提问来源于stack exchange,提问作者Wafi_ck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:06:04