SwiftUI 布局 - VStack 中的 NavigationView - 填充高度

SwiftUI Layout - NavigationView in VStack - fill height

鉴于以下观点:

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            SomeView()
            Spacer()

            HStack {
                Text("Some Text1")
                Spacer()
                Text("Some Text2")
                Spacer()
                Text("Some Text2")
            } .background(Color.green)

        } .background(Color.blue)

    }
}

struct SomeView: View {
    var body: some View {
        VStack {
            Text("Hello, World!")
        } 
    }
}

一切正常。绿色的 HStack 位于屏幕底部,其余屏幕区域由剩余的 VStack 内容填充为蓝色。

一旦 SomeView 被 NavigationView 包裹,这种行为就会改变。绿色的 HStack 仍然在屏幕底部,但 NavigationView 没有填满其余部分。有一个小蓝都剩下了。如何删除它让 NavigationView 填充内容区域?

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            SomeView()
            Spacer()

            HStack {
                Text("Some Text1")
                Spacer()
                Text("Some Text2")
                Spacer()
                Text("Some Text2")
            } .background(Color.green)

        } .background(Color.blue)

    }
}

struct SomeView: View {
    var body: some View {
        NavigationView {
            VStack {
                Text("Hello, World!")
            } .navigationBarTitle(Text("Test"))
        }
    }
}

提前感谢您的帮助!

删除 Spacer 并将 VStack 间距设置为零。这是我的代码。希望对你有所帮助。

    struct ContentView: View {
        var body: some View {
            VStack(spacing: 0) {
                SomeView()
                HStack {
                    Text("Some Text1")
                    Spacer()
                    Text("Some Text2")
                    Spacer()
                    Text("Some Text2")
                } .background(Color.red)

            } .background(Color.blue)

        }
    }

    struct SomeView: View {
        var body: some View {
            NavigationView {
                VStack {
                    Text("Hello, World!")
                } .navigationBarTitle(Text("Test"))
            }
        }
    }