如何监听透明视图后面发生的 UI 更新
How to listen for UI updates that occur behind a transparent view
我目前正试图找出 UI 更新发生在透明视图后面的时间。
这个透明视图是我想要 "register" 那些事件的视图。
我已经尝试扩展任何视图并拦截 onDraw
方法,但是它永远不会在视图后面的任何更新时触发。
我也尝试过 ViewTreeObserver
addOnPreDrawListener
、addOnDrawListener
和 addOnGlobalLayoutListener
,它们也不会在视图后面的任何更新时触发。
我也尝试过与上面相同的操作,但附加到 rootView
,结果相同。
有没有办法做到这一点,如果有,那么怎么做?
编辑:评论中要求的上下文
我想创建透明视图后面的模糊图像,我希望它是最新的,这意味着如果背景更新,模糊图像也会更新。
我不想学习如何模糊,我已经可以做到了,这不是本题的目的。
这似乎是不可能的,因为同一个 window 中的 UI 绑定到自身,这意味着任何时候当前 window 的 UI更新了我想更改的视图也会触发 UI 更新,从而导致递归循环。
此外,如果视图不可见,对其的任何更改都不会触发任何 UI 标志,这意味着在任何静态视图后面更改的视图将不会触发任何可以满足我需要的事件。
我目前正试图找出 UI 更新发生在透明视图后面的时间。
这个透明视图是我想要 "register" 那些事件的视图。
我已经尝试扩展任何视图并拦截 onDraw
方法,但是它永远不会在视图后面的任何更新时触发。
我也尝试过 ViewTreeObserver
addOnPreDrawListener
、addOnDrawListener
和 addOnGlobalLayoutListener
,它们也不会在视图后面的任何更新时触发。
我也尝试过与上面相同的操作,但附加到 rootView
,结果相同。
有没有办法做到这一点,如果有,那么怎么做?
编辑:评论中要求的上下文
我想创建透明视图后面的模糊图像,我希望它是最新的,这意味着如果背景更新,模糊图像也会更新。 我不想学习如何模糊,我已经可以做到了,这不是本题的目的。
这似乎是不可能的,因为同一个 window 中的 UI 绑定到自身,这意味着任何时候当前 window 的 UI更新了我想更改的视图也会触发 UI 更新,从而导致递归循环。
此外,如果视图不可见,对其的任何更改都不会触发任何 UI 标志,这意味着在任何静态视图后面更改的视图将不会触发任何可以满足我需要的事件。