点击 NavigationLink 后如何执行操作?

2023-12-30

我的第一个视图中有一个加号按钮。看起来像一个 FAB 按钮。我想在点击 NavigationLink 中包含的某个步骤后隐藏它。到目前为止我有这样的事情:

ForEach(0 ..< 12) {item in
    NavigationLink(destination: TransactionsDetailsView()) {
        VStack {
            HStack(alignment: .top) {
                Text("List item")
            }
            .padding(EdgeInsets(top: 5, leading: 10, bottom: 5, trailing: 10))
            .foregroundColor(.black)
            Divider()
        }
    }
    .simultaneousGesture(TapGesture().onEnded{
        self.showPlusButton = false
    })
        .onAppear(){
            self.showPlusButton = true
    }
}

单击一下即可正常工作。但当我长按 NavigationLink 时,它不起作用。我应该如何重写我的代码以包括长按?或者也许我应该让它的工作方式与使用simultaneousGesture不同?


Yes, NavigationLink不允许这样的同时手势(可能是设计的,可能是由于问题,等等)。

您期望的行为可能会实现如下(当然,如果您在列表项中需要一些 V 形符号,则需要手动添加它)

struct TestSimultaneousGesture: View {
    @State var showPlusButton = false
    @State var currentTag: Int?
    var body: some View {

        NavigationView {
            List {
                ForEach(0 ..< 12) { item in
                    VStack {
                        HStack(alignment: .top) {
                            Text("List item")
                            NavigationLink(destination: Text("Details"), tag: item, selection: self.$currentTag) {
                                EmptyView()
                            }
                        }
                        .padding(EdgeInsets(top: 5, leading: 10, bottom: 5, trailing: 10))
                        .foregroundColor(.black)
                        Divider()
                    }
                    .simultaneousGesture(TapGesture().onEnded{
                        print("Got Tap")
                        self.currentTag = item
                        self.showPlusButton = false
                    })
                    .simultaneousGesture(LongPressGesture().onEnded{_ in
                        print("Got Long Press")
                        self.currentTag = item
                        self.showPlusButton = false
                    })
                    .onAppear(){
                        self.showPlusButton = true
                    }
                }
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

点击 NavigationLink 后如何执行操作? 的相关文章

随机推荐

  • Microsoft bot 在本地运行,但在发布时无法运行

    因此 我创建了一个聊天机器人 当在本地运行时 它可以在 Microsoft Bot Framework Channel Emulator 上完美运行 然而 在我发布它之后 当我在 Telegram 上测试它时 我收到错误 500 POST
  • 更新数据绑定组合框

    我遇到了与此几乎相同的问题 C 更新绑定到通用列表的组合框 https stackoverflow com questions 433281 c update combobox bound to generic list 但是 我正在尝试更
  • 谷歌应用程序引擎中的BeautifulSoup错误

    我在 Google 应用程序引擎中制作了一个使用 Beautiful Soup 的应用程序 我用的是最新版本http www crummy com software BeautifulSoup bs4 download 4 0 http w
  • HTTP 实体到底是什么?

    有人可以向我描述一下到底什么是HTTP实体 is 我正在阅读 HTTPClient 文档 但我不太明白这意味着什么 An HTTP实体 http www w3 org Protocols rfc2616 rfc2616 sec7 html是
  • 如何在flutter中使用image_picker

    我对如何使用 image picker 感到困惑 这就是我在应用程序中使用它的方式 就像在许多教程中一样 class AddDialogState extends State
  • 单击时更改列表框的颜色

    我正在尝试将列表框的背景颜色更改为白色 我已成功将其更改为红色 以显示丢失的输入 但我希望在单击时将其更改回白色 我的代码是 Private Sub lstEqualToOrAround Click lstEqualToOrAround B
  • Postgresql 中的 RRULE 解析

    目标 从 RRULE 字符串 即 FREQ WEEKLY INTERVAL 2 COUNT 8 WKST SU BYDAY TU TH 和开始时间戳 由于这些时间会根据用户的心血来潮而改变 因此需要 postgresql 来实现 1 严格的
  • 如何在Python 3中从字节缓冲区构造内存中的TarFile对象?

    是否可以使用包含 tar 数据的缓冲区在内存中创建 TarFile 对象 而无需将 TarFile 写入磁盘并再次打开它 我们获取通过套接字发送的字节 像这样的东西 import tarfile byte array client read
  • SQL Server 二进制(128)从小端转换为大端

    如何在 SQL Server 中将二进制 128 从小端转换为大端 尝试这样的事情 declare little binary 4 set little 0x02010000 select little bigEndian cast rev
  • 使用 SSH.NET 库从 .NET 连接到 MySQL

    我正在开发一个网页 ASP NET C 通过 SSH 查询远程服务器上的 MySQL 数据库 我正在使用这两个库 mysql connector net 6 9 7 和 Renci SshNet dll 我可以通过 SSH 连接使用远程服务
  • NineOldAndroids 动画不适用于 API > 10

    我在用NineOldAndroid执行动画的库 对于 API10 应用程序强制关闭 这是我的代码 import static com nineoldandroids view ViewPropertyAnimator animate imp
  • 如何阻止 Intellij 创建 src/main/java 和 src/main/scala-x 文件夹?

    我在 Intellij 15 0 2 中有一个仅用于 scala 编程的 SBT 项目 由于某种原因 该项目不断在我的项目中创建以下文件夹 src 主 java src main scala 2 10 src main scala 2 11
  • 如何获取从 PUT 方法传递的数据

    我正在为 Laravel 创建一个 API 我使用 PUT 方法来更新数据 我使用 PUT 方法通过 Postman 发送数据 在我的控制器中 我有一个空数组 如何访问传递的数据 在我的路线中 我有 Route put vehicletyp
  • 如何在 FastAPI 中上传 CSV 文件并将其转换为 Pandas Dataframe?

    我想将文件上传到 FastAPI 后端并将其转换为 Pandas DataFrame 但是 我似乎不明白如何使用 FastAPI 来做到这一点UploadFile https fastapi tiangolo com tutorial re
  • React Router Switch 和确切路径

    我读过这份文件反应路由器开关 https github com ReactTraining react router blob master packages react router docs api Switch md 我了解交换机和路
  • 周围物体算法

    我正在开发一款游戏 该位置可能只存在一个对象 x y where x and y are ints 例如 一个对象可能存在于 0 0 也可能不存在 但不可能同时存在多个对象 我正在尝试决定使用哪个 STL 容器来解决当前的问题以及解决此问题
  • iPhone 相机对焦

    我使用下面的代码来对焦 iPhone 相机 但它不起作用 我从Apple的AVCam示例代码中获取了这段代码 我做错了什么吗 有什么方法可以 检测iPhone是否对焦 void focusAtPoint CGPoint point AVCa
  • Chrome 有内置的调用堆栈吗?

    在 Visual Studio 中 我习惯于在任何断点处显示调用堆栈 Chrome 是否具有调用堆栈功能 可以让我查看断点之前的函数 如果没有 是否有替代方案 适用于 Chrome 的第三方解决方案 供开发人员用来查看哪些函数导致了断点 编
  • Microsoft SQL Server 中表的事务隔离级别

    这更多的是对我想法的确认 而不是一个问题 可以在 SQL Server 中以表为基础更改隔离级别 还是只能在会话级别上定义 更改 如下面的语句所示 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 那
  • 点击 NavigationLink 后如何执行操作?

    我的第一个视图中有一个加号按钮 看起来像一个 FAB 按钮 我想在点击 NavigationLink 中包含的某个步骤后隐藏它 到目前为止我有这样的事情 ForEach 0 lt 12 item in NavigationLink dest