常用方法
对整个 ViewTree 监听,用于注册在 ViewTree 发生变化时的全局监听,它的大部分回调都在 ViewRootImpl 中触发
-
OnWindowFocusChangeListener: window 焦点状态发生变化时的回调,是不同 window 之间的变化回调。比如打开一个 dialog,最初的 window 就会失去焦点
-
OnGlobalFocusChangeListener:同一个 window 中不同 view 之间焦点变化时的回调。比如两个 editText,一个获取焦点时另一个就会失去焦点,会产生回调。调用 EditText::clearFocus() 函数时也会产生回调。注意:两个参数都有可能为 null
-
OnLayoutChangeListener:layout 之后,draw 之前。所以可以获取到 View 的真实宽高
-
OnPreDrawListener:draw 之前调用,返回 true 可取消本次 draw。它的执行时机在 OnLayoutChangeListener 之后
-
OnDrawListener:draw 之前调用,回调后就开始真正执行 draw 流程。它的调用时机在OnPreDrawListener 之后
-
OnScrollChangedListener:ViewTree 中有 View 滑动时触发。