SwiftUI列表未显示任何项目

时间:2020-04-26 08:34:07

标签: 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")
                }
            }
        }
    }
}

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

1 个答案:

答案 0 :(得分:2)

ScrollView期望内容中的尺寸,而List期望容器中的尺寸-如您所见,存在冲突,因此list的尺寸未定义,结果呈现引擎只是将其删除以避免歧义

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

例如

documentation

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")
                }
            }
        }
    }
}