【问题标题】:Handle touch event of view that is added in Window Manager处理窗口管理器中添加的视图的触摸事件
【发布时间】:2017-01-27 13:05:21
【问题描述】:

我正在尝试使用以下方法处理添加到 WindowManager 中的 View 的触摸事件: WindowManager.addView(View, LayoutParams).

称该视图为 MyView。此视图有 2 个部分,1 个可点击,另一个不可点击

我想要的是当用户触摸可点击部分时,MyView 将处理触摸事件。如果用户触摸了不可点击的部分,那么事件就会像那里没有 MyView 一样发送出去。

我尝试的是当用户触摸可点击部分时,我将布局参数标志更新为 NOT_FOCUSABLE,然后触摸事件由 MyView 处理。 当用户触摸不可点击的部分时,我将布局参数标志设置为 NOT_TOUCHABLE,然后将触摸事件发送到下面的内容。但这一次,MyView 由于这个布局参数标志而不再接收触摸事件,所以我没有机会重置标志。

我不知道如何解决这个问题。谁有想法,请分享。谢谢

【问题讨论】:

  • 有人有想法吗?
  • 好像没有解决办法。 :|
  • 出于安全原因窗口管理器无法接收触摸/按键事件
  • 如果您希望能够为窗口管理器处理事件并使其“出现”,就好像它周围没有背景一样,您需要将其放入自己的透明活动中,这样您就可以使用事件

标签: android


【解决方案1】:

我认为,您需要将根 ViewGroup(例如 FrameLayout)添加到您的 windowManager。然后,将需要显示的所有视图添加到根目录中。 Root 将消耗所有触摸事件并将它们发送到子视图。 抱歉,如果我犯了一些错误 - 英语不是我的母语。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2012-01-12
    • 2016-05-28
    • 2023-03-11
    • 2015-05-11
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多