SwiftUI NavigationView会导致列表出现不需要的缩进
如果我在SwiftUI NavigationView会导致列表出现不需要的缩进,swiftui,Swiftui,如果我在导航视图中用列表包装VStack,结果列表将缩进,请参见图。这不是预期的格式,因为我希望列表覆盖整个屏幕宽度 我如何解决这个问题?为什么会发生这种情况 注意:如果我删除VStack,这种缩进行为将消失,但这里我确实希望在NavigationView中包含文本框(“某物…”),因为我希望它在用户单击某个项目后消失 完整代码如下,Xcode 12.3: import SwiftUI struct ListView: View { var items: [String] var b
导航视图
中用列表
包装VStack
,结果列表将缩进,请参见图。这不是预期的格式,因为我希望列表覆盖整个屏幕宽度
我如何解决这个问题?为什么会发生这种情况
注意:如果我删除VStack
,这种缩进行为将消失,但这里我确实希望在NavigationView
中包含文本框(“某物…”),因为我希望它在用户单击某个项目后消失
完整代码如下,Xcode 12.3:
import SwiftUI
struct ListView: View {
var items: [String]
var body :some View {
List {
ForEach(items, id: \.self) { item in
NavigationLink(destination: Text(item)){
Text(item)
}
}
}
}
}
struct ContentView: View {
var body: some View {
NavigationView{
VStack{
Text("Something that should disappear when I click on the item")
ListView(items: ["a", "b"])
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
嘿,你需要做的就是为.liststyle添加修饰符
.listStyle(InsetListStyle())
此外,您还应注意,无法删除列表上的V形符号
import SwiftUI
struct ListView: View {
var items: [String]
var body :some View {
List {
ForEach(items, id: \.self) { item in
NavigationLink(destination: Text(item)){
Text(item)
}
}
}.listStyle(InsetListStyle())
}
}
struct ContentView: View {
var body: some View {
NavigationView{
VStack{
Text("Something that should disappear when I click on the item")
ListView(items: ["a", "b"])
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}