跳到正文

HyperLazyList

  • 包名:hyper_ui
  • 源码:library/src/main/java/hyper_ui/components/list/HyperLazyList.kt
  • 状态归属:调用方提供列表数据
  • Preview ID:lazy_list

基于 LazyColumn 的懒加载列表,适合数量较多或动态变化的数据。列表自动计算首尾圆角与卡片背景。

公开签名

kotlin
@Composable
fun <T> HyperLazyList(
    items: List<T>,
    modifier: Modifier = Modifier,
    key: ((item: T) -> Any)? = null,
    contentPadding: PaddingValues = PaddingValues(0.dp),
    verticalArrangement: Arrangement.Vertical = Arrangement.spacedBy(0.dp),
    itemContent: @Composable (item: T) -> Unit
)

参数

参数类型默认值说明
itemsList<T>必填列表数据
modifierModifierModifierLazyColumn 修饰符
key((T) -> Any)?null可选稳定键,动态列表建议提供
contentPaddingPaddingValuesPaddingValues(0.dp)列表内容内边距
verticalArrangementArrangement.Vertical间距 0.dp条目纵向排列
itemContent@Composable (T) -> Unit必填每项内容,只接收当前项目,不接收索引

最小用法

kotlin
import androidx.compose.runtime.Composable
import hyper_ui.*

@Composable
fun AccountList(accounts: List<String>) {
    HyperLazyList(
        items = accounts,
        key = { account -> account }
    ) { account ->
        HyperListItem(title = account)
    }
}

约束

  • itemContent 的参数是项目本身,不是索引。
  • 首尾圆角与项目背景由列表自动处理,不要在每项重复计算外层形状。
  • 分割线仍由条目内容决定;使用 HyperListItem.showDivider 时由调用方根据业务数据设置。
  • 少量、固定数据可使用 HyperList

交互预览

HyperLazyList 交互预览 在新窗口打开