滚动时导航栏出现问题,导航栏不会折叠到很小的地方,只有在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")
}
}
结果:
是否有办法将滚动视图的偏移量与导航栏折叠相关联?还是其他解决方法?
答案 0 :(得分:0)
合拢是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")
}
}