swift - 当单个非滚动项在 VStack 中时,SwiftUI 不会折叠导航栏
问题描述
当我滚动导航栏时,我遇到了一个问题,导航栏不会折叠成一个小导航栏,只有当VStack
.
以下代码工作正常
var body: some View {
NavigationView {
VStack {
ScrollView {
LazyVStack {
ForEach(0..<100) { number in
Text("\(number)")
}
}
}
}
.navigationBarTitle("Home")
}
}
并运行如下:
但是当我在顶层添加其他内容时VStack
,导航栏不再折叠。所以这段代码:
var body: some View {
NavigationView {
VStack {
SegmentedControl(selectedSegmentIndex: $currentTabIndex, segments: [.new, .new])
ScrollView {
LazyVStack {
ForEach(0..<100) { number in
Text("\(number)")
}
}
}
}
.navigationBarTitle("Home")
}
}
结果是:
有没有办法将滚动视图的偏移量与导航栏折叠联系起来?或任何其他解决方法?
解决方案
折叠是 的一种特殊行为NavigationView & ScrollView/List
。所以如果你想要它,把所有东西都放在里面ScrollView
,比如
var body: some View {
NavigationView {
ScrollView {
VStack {
SegmentedControl(selectedSegmentIndex: $currentTabIndex,
segments: [.new, .new])
LazyVStack {
ForEach(0..<100) { number in
Text("\(number)")
}
}
}
}
.navigationBarTitle("Home")
}
}
推荐阅读
- css - 可滚动溢出矩形的面积是如何计算的?
- cron - 跳过美国公共假期的 CloudWatch Events 规则
- c++ - 在cpp中构建antlr4项目
- php - 上传和下载文件夹到数据库
- python - 连接到 PythonAnywhere SQL Server 的问题
- linux - 如何在 Linux 上运行 .Net 核心 WinForms 应用程序
- python-3.x - 从 Dash Cytoscape 的下拉列表中选择不同的元素选项
- c++ - 下面的赋值语句是如何工作的?
- java - contextDestroyed 没有在 servlet 中调用
- react-native - 如何在 React Native 上链接内部页面