gpt4 book ai didi

listview - SwiftUI - NavigationLink 的目的地创建具有额外空间的 View

转载 作者:行者123 更新时间:2023-12-03 08:40:50 30 4
gpt4 key购买 nike

我已将登录页面精简为单个导航链接,该导航链接将 ListView 作为其目的地。如下图所示,问题在于,我得到的标题不是左侧间隔良好的标题,而是右侧所示的巨大空间。两种 View 都是相同的,但右侧的 View 是页面设计时的预览。左图是登录界面后的页面预览。

struct ContentView: View {

var body: some View {
NavigationView {
NavigationLink(destination: CustomerView()) {
Text("login")
}
}
}
}

enter image description here

这是 ListView 的代码:

var body: some View {

NavigationView {
VStack {
SearchBarView(text: $searchText)
.padding(.top, 0)
List {
ForEach(customers.filter({searchText.isEmpty ? true : $0.name.localizedCaseInsensitiveContains(searchText)})) { customer in
NavigationLink(destination: CustomerDetailView(customer: customer)) {
CustomerRow(customer: customer)
}
.navigationBarTitle("Customers")
}
}
}
}
.navigationBarBackButtonHidden(true)
}
}

最佳答案

您不需要两次 NavigationViewNavigationView 应该包装顶级 View 一次,它将覆盖您导航的所有 View 。删除 VStack 上的 NavigationView

 VStack {
List {
ForEach(0..<10) { index in
NavigationLink(destination: Text("Hello \(index)")) {
Text("\(index)")
}
}
}
}
.navigationBarTitle("Customers")
.navigationBarBackButtonHidden(true)

关于listview - SwiftUI - NavigationLink 的目的地创建具有额外空间的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62806762/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com