【问题标题】:Swipes generating on click on popup controls Firemonkey Delphi点击弹出控件时生成的滑动 Firemonkey Delphi
【发布时间】:2017-08-24 17:05:09
【问题描述】:

我是 firemonkey 和移动应用程序的新手。我有一个选项卡式 android 应用程序,我正在使用向左滑动和向右滑动手势在大多数 android 应用程序的选项卡页之间进行转换。 我的一个标签页充满了弹出框。即使应用程序现在位于另一个标签页上,也无法在不触发弹出列表的情况下滑出该页面。 我可以禁用手势并使用基于按钮的选项卡控件,但这不像 android。

我尝试了很多方法:

我可以拦截OnClick 事件并启用和禁用弹出窗口,但当时我无法检测到单击是滑动手势的一部分。它还没有切换选项卡,使用 doidle 或其他 processmessages 类型的方法不会让它完成切换选项卡,并且我不知道如何查看队列中的事件以查看是否有滑动手势。

我禁用了OnClick 事件并使用分配给弹出窗口的手势管理器中的长按来激活弹出窗口。问题是,如果我这样做,那么滑动手势将不再起作用,并且永远不会生成事件。我尝试了同样的方法,用弹出框填充面板并将手势管理器分配给面板,但滑动操作似乎永远不会被触发。

有什么建议吗?

【问题讨论】:

    标签: android user-interface delphi firemonkey


    【解决方案1】:

    如果您想要一个主手势向左滑动/向右滑动,您可以在 TabControl 的前景添加一个透明布局(使用 BringToFront)并在其上使用捕捉滑动。

    【讨论】:

    • 我可以使用更多细节。我从多标签示例开始。手势管理器在主窗体上,tabcontrol 也在主窗体上。手势管理器成功收集了所有选项卡上的手势。问题是“滑动”也会在底层控件上生成点击事件。
    • 我解决了弹出框的问题,方法是创建自己的弹出框并在弹出框之前添加一个计时器事件延迟,每次标签更改都会取消。
    • fmx 代码提供了在选项卡更改时自动关闭活动“选择器”屏幕的规定,但没有弹出窗口
    • 添加一个前台布局,捕捉手势事件允许您在不需要时停止级联 onclick。
    • 我还是想响应 onclick 事件。问题似乎是点击事件先于手势捕获。因此,需要做的是查看未决事件并查看点击实际上是手势的一部分。在标签页上放置一个大按钮并设置向上滑动手势以切换页面,当您在按钮上滑动时,您将获得点击事件,然后是手势事件。如果你在按钮上添加一个手势管理器,那么点击事件就会消失。
    猜你喜欢
    • 1970-01-01
    • 2017-04-10
    • 2014-08-11
    • 1970-01-01
    • 2012-03-02
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多