ScrollView 中的 SwiftUI 列表 [英] SwiftUI List inside ScrollVIew

查看:28
本文介绍了ScrollView 中的 SwiftUI 列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将我的 List 放在 ScrollView 中,以便我可以一起滚动 List 行和标题.但是我发现 ScrollView 中的 List 不起作用.它什么也没显示.任何人都知道为什么会发生这种情况和(或)如何解决?

I want to make my List inside a ScrollView so that I can scroll List rows and headers together. But I found that List inside ScrollView isn't working. It shows nothing. Anyone know why this happens and(or) how to fix?

我应该同时使用它们.

  • 我应该使用 ScrollView 以便在滚动行时也可以滚动标题(图像或文本).
  • 我应该使用 List 来使用 .ondelete() 方法.

我的示例代码如下.

@State private var numbers = [1,2,3,4,5,6,7,8,9]

var body: some View {
    ScrollView {
        Text("header")
        List {
            ForEach(numbers, id: \.self) {
                Text("\($0)")
            }
            .onDelete { index in
                // delete item
            }
        }
    }
}

推荐答案

可以,但在 List 使用全屏时不行.

It is possible but not when the List is using the full screen.

在代码示例中,我使用 GeometryReader 使列表尽可能大.但是您也可以删除 GeometryReader 并在 .frame() 中插入一个固定维度

In the code example I used GeometryReader to make the list as big as possible. But you can also remove the GeometryReader and just insert a fixed dimension into .frame()

 struct ContentView: View {
    
    @State private var numbers = [1,2,3,4,5,6,7,8,9]
    
    var body: some View {
        GeometryReader { g in
            ScrollView {
                Text("header")
                List {
                    ForEach(self.numbers, id: \.self) {
                        Text("\($0)")
                    }
                    .onDelete { index in
                        // delete item
                    }
                }.frame(width: g.size.width - 5, height: g.size.height - 50, alignment: .center)
            }
        }
    }
}

这篇关于ScrollView 中的 SwiftUI 列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆