1.activity中有个onWindowFocusChanged()方法,可以获取控件的大小,别的地方可能会调用过早导致获取不到实际的大小 2.fragment 没有onWindowFocusChanged()方法,不过可以调用视图树ViewTreeObserver的方法来实现: ...
分类:
移动开发 时间:
2016-04-15 15:23:55
阅读次数:
165
Android ViewTreeObserver简介 一、结构 二、概述 三、内部类 四、公共方法 ...
分类:
其他好文 时间:
2016-03-30 23:49:04
阅读次数:
231
public static interface ViewTreeObserver.OnPreDrawListener 我们先看下API中的定义: 类概述: 为即将绘制视图树时执行的回调函数定义的接口. 共有方法: public abstract boolean onPreDraw ()即将绘制视图树
分类:
移动开发 时间:
2016-02-28 18:16:32
阅读次数:
138
原理并不难. 代码量也不大. 非常简洁 . 先来个效果图 再上一波代码.public class SpecialScrollView extends ScrollView implements ViewTreeObserver.OnPreDrawListener { private stati...
分类:
其他好文 时间:
2016-01-18 11:57:09
阅读次数:
220
在某些需求下,我们需要在onCreate的时候就获取到控件的宽高,但是如果直接用view.getWidth()或view.getHeight()会得到0.这是因为在onCreate执行的时候,控件还没有被绘制出来.利用下面的方法可以获得控件的宽高: ViewTreeObserver vto = zo...
分类:
移动开发 时间:
2015-12-12 18:49:57
阅读次数:
153
ViewTreeObserver vto = tv.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { public void on...
分类:
移动开发 时间:
2015-11-02 17:07:21
阅读次数:
190
获取行数ViewTreeObserver vto = textView.getViewTreeObserver();vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onG...
分类:
其他好文 时间:
2015-10-14 11:51:35
阅读次数:
2184
private ViewTreeObserver viewTreeObserver; /** 获取可見区域高度 **/ WindowManager manager = getWindowManager(); window_width = manager.getDefaultDisplay().g.....
分类:
移动开发 时间:
2015-09-29 11:19:04
阅读次数:
256
1 //修改下拉距离 2 ViewTreeObserver vto = mCategoryResults.mSwipeRefreshLayout.getViewTreeObserver(); 3 vto.addOnGlobalLayoutListener(new ...
分类:
其他好文 时间:
2015-08-03 18:34:33
阅读次数:
159
Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时,很多地方都需要针对软键盘来对UI进行一些优化。
以下是整理出来的一个不错的方法,大家可以使用。
不过要注意的是,由于是使用ViewTreeObserver来进行监听,所以每次layout有所改变的话,都会触发,所以listner里面如果有改变layout的方法的话,要注意不要陷入无限触发循环了,这时需要加入一些标记...
分类:
移动开发 时间:
2015-07-29 15:59:26
阅读次数:
273