24

我有一个看起来像这样的 LazyColumn:

LazyColumn (
    verticalArrangement = Arrangement.spacedBy(12.dp)
) {
    items(bookList) { book ->
        InProgressBookItem(book = book)
    }
}

如何在列表中的每个项目之间添加一条线,类似于在旧的 RecyclerView 上使用项目装饰?

4

2 回答 2

34

目前,1.0.x没有内置的方法来添加分隔符。但是,您可以DividerLazyListScope.

就像是:

LazyColumn(
    verticalArrangement = Arrangement.spacedBy(12.dp),
) {
    items(itemsList){
        Text("Item at  $it")
        Divider(color = Color.Black)
    }
}

如果您不希望最后一个项目后跟 a Divider,您可以根据项目的索引为项目添加分隔符:

LazyColumn(
    verticalArrangement = Arrangement.spacedBy(12.dp),
) {
    itemsIndexed(itemsList) { index, item ->

        Text("Item at index $index is $item")

        if (index < itemsList.lastIndex)
            Divider(color = Color.Black, thickness = 1.dp)
    }
}

在此处输入图像描述

于 2021-04-17T16:31:03.980 回答
7

简单的:

LazyColumn (
    verticalArrangement = Arrangement.spacedBy(12.dp)
) {
    items(bookList) { book ->
        InProgressBookItem(book = book)
        Divider(color = Color.Black, thickness = 1.dp)
    }
}
于 2021-04-17T16:02:50.760 回答