如何将 NavigationView 从具有固定尺寸的 TabView 扩展到全屏?
Posted
技术标签:
【中文标题】如何将 NavigationView 从具有固定尺寸的 TabView 扩展到全屏?【英文标题】:How to expand a NavigationView to full screen from a TabView with fixed dimensions? 【发布时间】:2021-12-09 20:19:03 【问题描述】:我有一个VStack
,它结合了两个视图。一个是常规的Rectangle
,另一个是在其他矩形中旋转的TabView
。其中一个矩形就像NavigationView
中的一个按钮,它向用户呈现日历。
在我当前的代码中,日历的大小与TabView
相同,但我希望日历扩展到全屏(移除绿色矩形并转到完全不同的视图)。怎样才能做到这一点?
当前代码
import SwiftUI
struct ContentView: View
var body: some View
VStack
Rectangle()
.cornerRadius(15)
.foregroundColor(Color.green)
.frame(width: .infinity, height: 250)
TabView
Rectangle()
.cornerRadius(15)
.foregroundColor(Color.blue)
.frame(width: .infinity, height: 300)
Rectangle()
.cornerRadius(15)
.foregroundColor(Color.black)
.frame(width: .infinity, height: 300)
NavigationView
NavigationLink(destination: CalendarView())
Text("Tap for calendar.")
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
.indexViewStyle(.page(backgroundDisplayMode: PageIndexViewStyle.BackgroundDisplayMode.always))
struct ContentView_Previews: PreviewProvider
static var previews: some View
ContentView()
它看起来像什么
【问题讨论】:
【参考方案1】:原来你只需要将整个东西包裹在 NavigationView
...
mport SwiftUI
struct ContentView: View
var body: some View
NavigationView
VStack
Rectangle()
.cornerRadius(15)
.foregroundColor(Color.green)
.frame(width: .infinity, height: 250)
TabView
Rectangle()
.cornerRadius(15)
.foregroundColor(Color.blue)
.frame(width: .infinity, height: 300)
Rectangle()
.cornerRadius(15)
.foregroundColor(Color.black)
.frame(width: .infinity, height: 300)
NavigationView
NavigationLink(destination: CalendarView())
Text("Tap for calendar.")
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
.indexViewStyle(.page(backgroundDisplayMode: PageIndexViewStyle.BackgroundDisplayMode.always))
struct ContentView_Previews: PreviewProvider
static var previews: some View
ContentView()
【讨论】:
以上是关于如何将 NavigationView 从具有固定尺寸的 TabView 扩展到全屏?的主要内容,如果未能解决你的问题,请参考以下文章
如何从右到左设计android.support.design.widget.NavigationView?
如何从 SwiftUI 中的 NavigationView 中删除搜索栏?
如何处理NavigationView PaneFooter设置项单击
如何将 BottomNavigationView 与 NavigationView 一起对齐到 Activity 的底部?