我想将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,则可以看到全部内容,但是文本被推到最底端。我只是希望能够在一个漂亮的可滚动页面中添加列表和视图。
答案 0 :(得分:2)
ScrollView
期望内容中的尺寸,而List
期望容器中的尺寸-如您所见,存在冲突,因此list的尺寸未定义,结果呈现引擎只是将其删除以避免歧义
解决方案是根据您的需要为List定义一些大小,因此ScrollView现在将如何布局它,以便滚动视图可以滚动整个内容,而list可以滚动内部内容。
例如
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")
}
}
}
}
}