繁体   English   中英

如何在 SwiftUI 的列表中使用带有 swipeActions 的 NavigationLink

[英]How to have a NavigationLink with swipeActions in a List in SwiftUI

考虑这样的 NavigationView 内的列表:

struct ContentView: View {
    var body: some View {
        NavigationView {
            List {
                Text("Shovel")
                Text("Bucket")
                Text("Sieve")
            
            }.navigationTitle("Sandbox")
        }
    }
}

我想将.swipeActions添加到列表条目的后沿,如下所示:

Text("Shovel")
    .swipeActions(edge: .trailing) {
        Button{} label: { Image(systemName: "trash.fill") }
    }

滑动动作

但是,一旦我将列表条目嵌入到NavigationLink中, .swipeActions就不再起作用了。

NavigationLink(destination: Text("Shovel")) {
    Text("Shovel")
        .swipeActions(edge: .trailing) {
            Button{} label: { Image(systemName: "trash.fill") }
        }
}

导航链接

现在进入问题:

为什么会这样?我怎样才能同时拥有这两个功能?

谢谢你的帮助。

您应该像这样将SwipeAction添加到NavigationLink

NavigationLink(destination: Text("Shovel")) {
    Text("Shovel")
}.swipeActions(edge: .trailing) {
    Button{} label: { Image(systemName: "trash.fill") }
}

发生这种行为是因为滑动操作是用于List Rowmodifier 当您只有Text时,它就是行。

但是,当在任何ViewVStackHStackNavigationLink ...)中嵌入您的内容时,该父级将成为Row

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM