ViewTreeObserver 不能创建,只能通过 View 的 getViewTreeObserver() 方法获取。
ViewTreeObserver 内部定义了几个有用的接口,支持注册观察器;当视图树的布局、视图树的焦点、视图树将要绘制、视图树滚动等发生改变时,ViewTreeObserver都会收到通知。
内部类接口 | 备注 |
---|---|
ViewTreeObserver.OnPreDrawListener | 当视图树将要被绘制时,会调用的接口 |
ViewTreeObserver.OnGlobalLayoutListener | 当视图树的布局发生改变或者View在视图树的可见状态发生改变时会调用的接口 |
ViewTreeObserver.OnGlobalFocusChangeListener | 当一个视图树的焦点状态改变时,会调用的接口 |
ViewTreeObserver.OnScrollChangedListener | 当视图树的一些组件发生滚动时会调用的接口 |
ViewTreeObserver.OnTouchModeChangeListener | 当视图树的触摸模式发生改变时,会调用的接口 |
作为一个记录,以后可能用到。
表格来自 https://www.jianshu.com/p/5b026ffc36f1,这篇帖子写的更详细一点。
网友评论