1、ViewTreeObserver这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。
ViewTreeObserver observer = mText.getViewTreeObserver(); observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // TODO Auto-generated method stub MarginLayoutParams layoutParams = (MarginLayoutParams) mText .getLayoutParams(); mText.setLayoutParams(layoutParams); mText.getViewTreeObserver().removeGlobalOnLayoutListener( this); } });
removeGlobalOnLayoutListener很有必要,不然可能导致死循环
Done
原文:http://www.cnblogs.com/xingyyy/p/4348827.html