监听视图树 OnGlobalLayoutListener
前奏:在哪里可以获取到View的宽高
官方文档简介
内部接口
- 回调方法 public void onDraw()
- Interface definition for a callback to be invoked when the view tree is about to将要 be drawn.
- At this point, views cannot be modified in any way.
- Unlike with OnPreDrawListener, this method cannot be used to cancel the current drawing pass.
- An OnDrawListener listener cannot be added or removed from this method.
OnGlobalFocusChangeListener:当在一个视图树中的焦点状态发生改变时回调
- 回调方法 public void onGlobalFocusChanged(View oldFocus, View newFocus);
- Interface definition for a callback to be invoked when the focus state焦点状态 within the view tree changes.
- When the view tree transitions from touch mode to non-touch mode, oldFocus is null.
- When the view tree transitions from non-touch mode to touch mode, newFocus is null.
- When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.
OnGlobalLayoutListener:当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时回调
- 回调方法 public void onGlobalLayout();
- Interface definition for a callback to be invoked when the global layout state布局状态 or the visibility of views within the view tree changes.
OnPreDrawListener:当一个视图树将要绘制时回调
- 回调方法 public boolean onPreDraw(); Return true to proceed with the current drawing pass, or false to cancel.
- Interface definition for a callback to be invoked when the view tree is about to将要 be drawn.
- At this point, all views in the tree have been measured and given a frame.
- Clients can use this to adjust适应 their scroll bounds or even to request a new layout before drawing occurs.
OnScrollChangedListener:当一个视图树中的一些组件发生滚动时回调
- 回调方法 public void onScrollChanged();
- Interface definition for a callback to be invoked when something in the view tree has been scrolled滚动.
OnTouchModeChangeListener:当一个视图树的触摸模式发生改变时回调
- 回调方法 public void onTouchModeChanged(boolean isInTouchMode); True if the view hierarchy is now in touch mode, false otherwise.
- Interface definition for a callback to be invoked when the touch mode触摸方式 changes.
OnWindowAttachListener:
- 回调方法 public void onWindowAttached(); 和 public void onWindowDetached();
- Interface definition for a callback to be invoked when the view hierarchy视图数 is attached to and detached from its window.
OnWindowFocusChangeListener:
- 回调方法 public void onWindowFocusChanged(boolean hasFocus); Set to true if the window is gaining focus, false if it is losing focus.
- Interface definition for a callback to be invoked when the view hierarchy's window focus state窗口焦点 changes.
公共方法
- void addOnDrawListener(ViewTreeObserver.OnDrawListener listener):Register a callback to be invoked when the view tree is about to be drawn.
- void addOnGlobalFocusChangeListener(ViewTreeObserver.OnGlobalFocusChangeListener listener):Register a callback to be invoked when the focus state within the view tree changes.
- void addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener):Register a callback to be invoked when the global layout state or the visibility of views within the view tree changes
- void addOnPreDrawListener(ViewTreeObserver.OnPreDrawListener listener):Register a callback to be invoked when the view tree is about to be drawn
- void addOnScrollChangedListener(ViewTreeObserver.OnScrollChangedListener listener):Register a callback to be invoked when a view has been scrolled.
- void addOnTouchModeChangeListener(ViewTreeObserver.OnTouchModeChangeListener listener):Register a callback to be invoked when the invoked when the touch mode changes.
- void addOnWindowAttachListener(ViewTreeObserver.OnWindowAttachListener listener):Register a callback to be invoked when the view hierarchy is attached to a window.
- void addOnWindowFocusChangeListener(ViewTreeObserver.OnWindowFocusChangeListener listener):Register a callback to be invoked when the window focus state within the view tree changes.
- void removeGlobalOnLayoutListener(ViewTreeObserver.OnGlobalLayoutListener victim):This method was deprecated in API level 16. Use removeOnGlobalLayoutListener instead
- void removeOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener victim):Remove a previously installed global layout callback
- final void dispatchOnDraw():Notifies registered listeners that the drawing pass is about to start.
- final void dispatchOnGlobalLayout():Notifies registered listeners that a global layout happened.
- final boolean dispatchOnPreDraw():Notifies registered listeners that the drawing pass is about to start.
- boolean isAlive():Indicates指示、判断 whether this ViewTreeObserver is alive是否可用.
案例:获取View的宽高
}
监听视图树 OnGlobalLayoutListener的更多相关文章
- 监听视图树 ViewTreeObserver 获取View的宽高
前奏:在哪里可以获取到View的宽高 我们知道,在onCreate方法执行完毕以后,View才开始被测量,所以我们在onCreate方法里面通过view.getWidth()或view.getMeas ...
- sencha touch 监听视图切换动画(animation)
var animation = this.getLayout().getAnimation(); //添加监听 animation.on({ scope: this, animationend: 'o ...
- MutationObserver 监听DOM树变化
1 概述 Mutation observer 是用于代替 Mutation events 作为观察DOM树结构发生变化时,做出相应处理的API.为什么要使用mutation observer 去代替 ...
- MutationObserver 监听 DOM 树变化
MutationObserver 是用于代替 MutationEvents 作为观察 DOM 树结构发生变化时,做出相应处理的 API .为什么要使用 MutationObserver 去代替 Mut ...
- android activity中监听View测量完成的4种方式
在开发中经常碰到需要在activity初始化完成后获得控件大小的情况. 但是这个操作我们不能在oncreate.onresume等生命周期方法中调用,因为我们不知道何时view才能初始化完成 为此,特 ...
- #你好Unity3D#Hierarchy视图监听gameObject点击事件
今天无意间又找到了个好方法 1 2 3 4 5 6 7 8 9 10 [InitializeOnLoadMethod] static void Start () { Selection.s ...
- [Swift通天遁地]三、手势与图表-(2)监听手势事件自由拖动图像视图
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 使用swipecard实现卡片视图左右滑动监听以及点击监听
前言: 大家好,今天给大家介绍安卓一种特别实用有很酷炫的组件swipecard,当然这并不是安卓爸爸创造的,这是国内的一个我认为是大牛的一个人随便写着玩儿搞出来了,我看了他的代码介绍已经很清晰了,但 ...
- AndroidUI 视图动画-混合动画效果 (AnimationSet)/动画效果监听
在前面介绍了几种动画效果:透明动画效果(AlphsAnimation).移动动画效果(TranslateAnimation).旋转动画效果(RotateAnimation).缩放动画效果(ScaleA ...
随机推荐
- 跟我一起学CMake
如今CMake使用的人数越来越多,包括我项目组里,很多大牛们在写Qt程序的时候都不用自带的qmake,貌似会出现很多问题,他们往往都用自己写的CMake来编译系统,今天我也和大家一起来学学这个高大上的 ...
- TCP/IP-TCP
Don't cry over spilt milk. "覆水难收" 参考资料:TCP/IP入门经典 (第五版) TCP/IP详解 卷一:协议 TCP是协议栈中非常重要的一个部分, ...
- jquery 当前页导航高亮显示
<script type="text/javascript"> $(document).ready(function(){ var myNav = $("#n ...
- python -i filename
今天学习的时候看见python -i filaname 这个命令,书上说使用这个命令可以去执行filename文件中的代码.但是今天在使用的时候却一直报错,经过多次测试才把问题解决. 原来这个命令是不 ...
- bzoj2071: [POI2004]JAS
Description 在Byteotia有一个洞穴. 它包含n 个洞室和一些隧道连接他们. 每个洞室之间只有一条唯一的路径连接他们. Hansel 在其中一个洞室藏了宝藏, 但是它不会说出它在哪. ...
- iOS开发网络篇—XML数据的解析
iOS开发网络篇—XML数据的解析 iOS开发网络篇—XML介绍 一.XML简单介绍 XML:全称是Extensible Markup Language,译作“可扩展标记语言” 跟JSON一样,也是 ...
- C++学习笔记--Season 1
#include <iostream> //预处理 注意:iostream不带.h int main() { std::cout << "Aloha World&qu ...
- Coupons
uva10288:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&am ...
- 【HDOJ】1243 反恐训练营
LCS. /* 1243 */ #include <cstdio> #include <cstring> #include <cstdlib> #define MA ...
- POJ 1637 混合图欧拉回路
先来复习一下混合图欧拉回路:给定一张含有单向边和双向边的图,使得每一点的入度出度相同. 首先对于有向边来说,它能贡献的入度出度是确定的,我们不予考虑.对于无向图,它可以通过改变方向来改变两端点的出入度 ...