首页 > 解决方案 > (SwiftUI) NavigationLink 不是屏幕的全宽

问题描述

NavigationView位于 root 中,并且NavigationLink在 subView 中时,如下面的代码,导航链接的标签不能占据屏幕的整个宽度。

如果我将 移动NavigationView到 subView( 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")
                    }
                )
            }
        }
    }

在此处输入图像描述

标签: swiftswiftuinavigationview

解决方案


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

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

在此处输入图像描述


推荐阅读