JetpackComposeLazyColumn的ItemDecoration是什么?
在 JetpackCompose 中,我们可以使用LazyColumnFor
as RecyclerView
。
在 中RecyclerView
,要在项目之间有适当的边距/填充,我们需要使用ItemDecoration
,如本文所述
像下面
class MarginItemDecoration(private val spaceHeight: Int) : RecyclerView.ItemDecoration() {
override fun getItemOffsets(outRect: Rect, view: View,
parent: RecyclerView, state: RecyclerView.State) {
with(outRect) {
if (parent.getChildAdapterPosition(view) == 0) {
top = spaceHeight
}
left = spaceHeight
right = spaceHeight
bottom = spaceHeight
}
}
}
对于 JetpackCompose LazyColumnFor
,相当于ItemDecoration
什么?
回答
有了1.0.x
您可以使用Arrangement.spacedBy()
添加项之间的间距。
就像是:
LazyColumn(
verticalArrangement = Arrangement.spacedBy(8.dp),
) {
// ...
}
下面的示例8.dp
在每个项目之间添加了空间
之前和之后:
如果要在内容边缘添加填充,可以使用该contentPadding
参数。
LazyColumn(
verticalArrangement = Arrangement.spacedBy(8.dp),
contentPadding = PaddingValues(horizontal = 24.dp, vertical = 8.dp)
){ ... }
在上面的示例中,第一个项目将8.dp
在其顶部添加填充,最后一个项目将添加8.dp
到其底部,并且所有项目24.dp
的左侧和右侧都有填充。
THE END
二维码