android - Jetpack Compose LazyColumn 的 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
什么?
解决方案
您可以使用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
在左侧和右侧添加内边距。
推荐阅读
- java - 在 Spring 中获取多个 DB 表的内容
- ibm-cloud - IBM Speech-to-Text 的 API 速率限制
- minecraft - 在函数中只运行一次命令
- vim - vimrc 中的 :s##// 有什么问题?
- mysql - 由从另一个查询获得的输出组成的 mySQL 查询
- youtube-api - “应用程序已被阻止”使用具有获利 Youtube 帐户的 Google 帐户
- python - 在归一化时间序列分析上绘制滚动平均值
- web-scraping - 使用刮板箱检索兄弟元素
- python - 从另一个网络连接到 XAMPP MySQL
- python - PyQt6 Python:使用按钮运行脚本