我想使用一个简单的水平 ScrollView
如 NavigationLink
里面List
.但是,点击 ScrollView
不是由 NavigationLink
注册的因此不会导航到目的地。
NavigationView {
List {
NavigationLink(destination: Text("Detail")) {
ScrollView(.horizontal) {
Text("Tapping here does not navigate.")
}
}
}
}
关于我们如何预防的任何想法 ScrollView
从捕获导航点击手势?
最佳答案
您可以移动NavigationLink
到 background
并在 onTapGesture
中激活它:
struct ContentView: View {
@State var isLinkActive = false
var body: some View {
NavigationView {
List {
ScrollView(.horizontal) {
Text("Tapping here does not navigate.")
}
.onTapGesture {
isLinkActive = true
}
}
.background(
NavigationLink(destination: Text("Detail"), isActive: $isLinkActive) {}
)
}
}
}
关于ios - SwiftUI:NavigationLink 内的水平 ScrollView 中断导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64544452/