Android经常在onCreate()方法中出现view.getWidth=0的情况,原因是该view还没有绘制好,之前用的方法是handler.postDelay()进行延时获取,但不是长久之计,体验也不是很好,最近则发现了这个问题的一个比较好的解决方法!
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//获取width和height
Log.i(TAG, "getWidth-------------------------------" + bu_demo.getWidth());
//注意取消监听,因为该方法会调用多次!
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});