SwiftUI NavigationView 导致列表出现不需要的缩进 [重复]
Posted
技术标签:
【中文标题】SwiftUI NavigationView 导致列表出现不需要的缩进 [重复]【英文标题】:SwiftUI NavigationView leads to unwanted indentation for lists [duplicate] 【发布时间】:2021-01-06 01:58:04 【问题描述】:如果我将VStack
与List
包装在NavigationView
内,则结果列表会缩进,请参见图片。这不是预期的格式,因为我希望列表覆盖整个屏幕宽度。
我该如何解决这个问题以及为什么会发生这种情况?
注意:如果我删除 VStack
,这种缩进行为将会消失,但在这里我确实想在 NavigationView
中包含文本框(“Something...”),因为我希望它消失一旦用户点击一个项目。
完整代码如下,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()
【问题讨论】:
【参考方案1】:你需要做的就是为 .liststyle 添加修饰符
.listStyle(InsetListStyle())
另外你应该知道,没有办法删除列表上的人字形符号
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()
【讨论】:
以上是关于SwiftUI NavigationView 导致列表出现不需要的缩进 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在启动时显示 NavigationView (SwiftUI) 的详细视图
SwiftUI @State 在放入 NavigationView(macOS 应用程序)时仅更新一次
SwiftUI NavigationView 与 List 内 ForEach 中的 NavigationLink 来回跳转