You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中如何移除ListView底部的空白区域?

SwiftUI List 移除底部空白并保留动态行高解决方案

针对你遇到的List底部空白问题,同时要保持行高动态、保留List组件(避免内容靠底显示),可以通过调整List样式和内边距来解决,以下是修改后的代码及说明:

var body: some View {
    VStack {
        Spacer()

        HStack {
            Text(orderDetails.orderNumber ?? "").bold()
            Spacer()
        }

        List {
            Section(header: ListHeader()) {
                ForEach(paidDetails.indices, id: \.self) { i in
                    HStack {
                        Text("Paid By:")
                        Spacer()
                        Text(paidDetails[i].name ?? "")
                        Spacer()
                        Text(paidDetails[i].amountCollected)
                    }
                    // 自定义行内边距,既保证行高随内容动态调整,又能控制间距
                    .listRowInsets(EdgeInsets(top: 8, leading: 16, bottom: 8, trailing: 16))
                }
            }
            // 取消Section标题的默认突出样式,减少不必要的间距
            .headerProminence(.none)
        }
        // 使用Plain样式,移除List默认分组结构带来的上下空白
        .listStyle(.plain)
        // 清除List滚动视图的默认内边距,避免内容周围多余空白
        .scrollContentInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
        // 让List从顶部开始布局,避免因默认扩展导致底部出现空白
        .frame(minHeight: 0, maxHeight: .infinity, alignment: .top)

        Button(action: {
            presentationMode.wrappedValue.dismiss()
        }, label: {
            Text("Close".localized).bold()
        })
        .background(Color("CallCustomerBG"))
    }
}

关键修改点说明:

  • .listStyle(.plain):去掉List默认分组样式的上下留白,让整体布局更紧凑。
  • .headerProminence(.none):消除Section标题和内容之间的额外间距,避免标题区域占用过多空间。
  • .scrollContentInsets(...):清除List滚动容器的默认内边距,确保内容紧贴边缘。
  • .listRowInsets(...):自定义每行的内边距,既能让行高根据内容自动调整,又能控制行内元素的间距,避免默认边距过大。
  • .frame(...):强制List从顶部开始填充可用空间,不会因为List默认的扩展特性导致底部出现空白区域。

如果你的列表内容不会超过屏幕高度,还可以给List添加.scrollDisabled(true),进一步消除滚动相关的预留空间。

内容的提问来源于stack exchange,提问作者abinbabu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:57:26