我正在尝试向我的列表中添加一个非常短的行,框架高度为 2,但该列表在列表项上方和下方添加了不需要的填充或限制为最小高度,我不知道如何删除它。我制作了以下内容来说明问题:
struct ContentView: View {
var body: some View {
List {
Color.red
.frame(height: 2)
Color.blue
.frame(height: 2)
}
}
}
如何删除列表项上方和下方的填充?如果使用节并添加页眉或页脚,则相同。它不允许我有一个框架高度较小的列表条目。
在 LazyVStack 中我没有这个问题,但我需要使用一个列表。
最佳答案
- 使用
.environment(\.defaultMinListRowHeight, 0)
使每行的最小高度为 0。否则,每行将始终至少为 44(默认)点高。 - 使用
.listRowInsets(EdgeInsets())
使每一行都没有插入。您也可以执行.listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0))
,结果相同。
struct ContentView: View {
var body: some View {
List {
Color.red
.frame(height: 5)
.listRowInsets(EdgeInsets()) /// 2.
Color.blue
.frame(height: 5)
.listRowInsets(EdgeInsets())
}
.environment(\.defaultMinListRowHeight, 0) /// 1.
}
}
结果:
关于ios - 如何删除 SwiftUI 中列表行的最小垂直填充或最小高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68043037/