SwiftUI 列表未显示任何项目

Win*_*ten 7 swiftui swiftui-list swiftui-navigationlink

我想将 NavigationView 与 ScrollView 一起使用,但我没有看到列表项。

struct ContentView: View {
    var body: some View {
        NavigationView {
            ScrollView{
                VStack {
                    Text("Some stuff 1")
                    List{
                        Text("one").padding()
                        Text("two").padding()
                        Text("three").padding()
                    }
                    Text("Some stuff 2")
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我所看到的只是文字。如果我删除 ScrollView,我会看到所有内容,但文本会被推到最底部。我只是希望能够在一个漂亮的可滚动页面中添加列表和视图。

Asp*_*eri 12

ScrollView从内容期望尺寸,但List预计从容器的尺寸-当你看到有冲突,所以对于列表大小不定,所以结果是渲染引擎刚落,以避免disambiguty。

解决方案是根据您的需要为 List 定义一些大小,因此 ScrollView 现在将如何布局它,因此滚动视图可以滚动整个内容,列表可以滚动内部内容。

例如。

演示

struct ContentView: View {
    @Environment(\.defaultMinListRowHeight) var minRowHeight

    var body: some View {
        NavigationView {
            ScrollView{
                VStack {
                    Text("Some stuff 1")
                    List {
                        Text("one").padding()
                        Text("two").padding()
                        Text("three").padding()
                    }.frame(minHeight: minRowHeight * 3).border(Color.red)
                    Text("Some stuff 2")
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)