【问题标题】:How to listen for UI updates that occur behind a transparent view如何监听透明视图后面发生的 UI 更新
【发布时间】:2018-10-30 18:13:59
【问题描述】:

我目前正在尝试找出何时在透明视图后面发生 UI 更新。

这个透明视图是我想要“注册”这些事件的视图。

我已经尝试扩展任何视图并拦截onDraw 方法,但是当视图后面有任何更新时它永远不会触发。

我也试过ViewTreeObserveraddOnPreDrawListeneraddOnDrawListeneraddOnGlobalLayoutListener,它们也不会在视图后面有任何更新时触发。

我也尝试过与上述相同的操作,但附加到rootView,结果相同。

有没有办法实现这一点,如果是,那么如何实现?

编辑:cmets 中请求的上下文

我想创建透明视图背后的模糊图像,并且我希望它是最新的,这意味着如果背景更新模糊图像也会更新。 我不想学习如何模糊,我已经可以做到,这不是这个问题的主题。

【问题讨论】:

  • 您能否提供更多背景信息。无论你试图解决什么,它看起来都很奇怪
  • 我想创建透明视图背后的模糊图像,并且我希望它是最新的,这意味着如果背景更新模糊图像也会更新。我会把这个添加到问题中。我不是在寻找如何模糊,这不是问题,我已经可以做到了。
  • 另外我认为它应该是可能的(通过覆盖根布局的绘制来通知您透明视图,如果没有别的),我建议尝试以这样的方式覆盖根布局的 onDraw模糊自己和所有的孩子。可以帮助你。

标签: android user-interface transparency


【解决方案1】:

这似乎是不可能的,因为同一窗口中的 UI 与其自身相关联,这意味着每当当前窗口的 UI 更新时,我想要更改的视图也会触发 UI 更新,从而导致递归循环。

此外,如果视图不可见,对其进行的任何更改都不会触发任何 UI 标志,这意味着在任何静态视图后面发生更改的视图都不会触发任何可以实现我想要的事件。

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多