在我的 SwiftUI 应用程序中,我有一个带有嵌套 ScrollView 的列表,因为我已将 iPhone 更新到 iOS 16,所以主列表上的刷新有一个奇怪的行为。
似乎每个ScrollView都有自己的刷新。问题是我在主列表上应用了 .refreshable 修饰符,而不是在嵌套列表上。
在 iOS 16 之前,这个问题并不存在。那么,这是一个错误还是我们可以通过某种方式修复它?
这是代码和短视频:
List {
VStack(alignment: .leading) {
Text("Line 1")
.font(.title)
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 20) {
Text("Item 1")
Text("Item 2")
Text("Item 3")
Text("Item 4")
Text("Item 5")
Text("Item 6")
Text("Item 7")
Text("Item 8")
Text("Item 9")
Text("Item 10")
}
.frame(height: 180)
}
}
.listRowSeparator(.hidden)
VStack(alignment: .leading) {
Text("Line 2")
.font(.title)
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 20) {
Text("Item 1")
Text("Item 2")
Text("Item 3")
Text("Item 4")
Text("Item 5")
Text("Item 6")
Text("Item 7")
Text("Item 8")
Text("Item 9")
Text("Item 10")
}
.frame(height: 180)
}
}
.listRowSeparator(.hidden)
}
.listStyle(.plain)
.refreshable {
print("refresh!")
}
如果你改变你的List
for a ScrollView
,然后更改行.listStyle(.plain)
for .padding(.horizontal)
,它会同样工作,没有错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)