项目中一个自定义View,继承自RelativeLayout,其中需要得到它的大小,在onCreate()方法中调用getWidth()与getHeight()得到的值均为0,网上有朋友说在onClick()方法中可以获取,没有试过,若可以,调用performClick()就可以自动完成点击得到尺寸。
其实有另一个监听器更合适来做这个的,即OnGlobalLayoutListener,不过OnGlobalLayoutListener是ViewTreeObserver的监听器,ViewTreeObserver是用来帮助我们监听某些View的某些变化的。下面的代码是在自定义的View里得到ViewTreeObserver对象,注册监听器和一般的一样。
ViewTreeObserver vto = this.getViewTreeObserver();
vto.addOnGlobalLayoutListener(this);