(SwiftUI) NavigationLink 不是屏幕的全宽

Posted

技术标签:

【中文标题】(SwiftUI) NavigationLink 不是屏幕的全宽【英文标题】:(SwiftUI) NavigationLink is not full width of screen 【发布时间】:2021-12-05 17:30:29 【问题描述】:

NavigationView在root中,NavigationLink在subView时,如下代码,导航链接的标签不能占满屏幕宽度。

如果我将NavigationView 移动到子视图(ListView),标签将是全宽的,但我无法导航到全屏目标。

有人可以帮忙吗?要求是 1. 导航链接标签的全宽和 2. 导航到全屏视图。还是我应该使用 fullScreenCover 来做到这一点?

    struct ContentView: View 
        var body: some View 
            NavigationView 
                VStack 
                    ListView()
                    Text("Tabs here")
                
            
        
    
    
    struct ListView: View 
        var body: some View 
            List 
                NavigationLink(
                    destination: Text("detail for item1"),
                    label: 
                        Text("item1")
                    
                )
                NavigationLink(
                    destination: Text("detail for item2"),
                    label: 
                        Text("item2")
                    
                )
            
        
    

【问题讨论】:

【参考方案1】:

使用PlainListStyle() 会导致行占据整个宽度:

List 
  NavigationLink(
      destination: Text("detail for item1"),
      label: 
          Text("item1")
      
  )
  NavigationLink(
      destination: Text("detail for item2"),
      label: 
          Text("item2")
      
  )
.listStyle(PlainListStyle())

【讨论】:

以上是关于(SwiftUI) NavigationLink 不是屏幕的全宽的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:NavigationLink 奇怪的行为

SwiftUI 上的 NavigationLink 两次推送视图

SwiftUI:NavigationLink 内的水平 ScrollView 会中断导航

有没有办法向 NavigationLink 添加额外的功能? SwiftUI

无法单击列表中的 NavigationLink (SwiftUI)

需要帮助使 NavigationLink 在 SwiftUI 中工作