在onCreate()方法中,如果想获得控件的宽度高度,使用下面示例的方法是不能够取得到的:
orderTime.getHeight();
orderTime.getWidth();
那么使用上面的方法,为什么会取不到控件的宽高呢?很简单,就是因为在onCreate()执行的时候,只是把我们的控件find出来了,但是控件病还没有进行一系列的测量(onMeasure),布局(onLayout)等操作,所以,在onCreate()中取到的宽高都是0。
那么,有什么方法可以满足我们的需求呢?请看下面的方法。
orderTime.post(new Runnable() {
@Override
public void run() {
System.out.println("高"+orderTime.getHeight());
System.out.println("宽"+orderTime.getWidth());
}
});
其中,orderTime是一个TextView。当然,这里只是一个例子,对于其他的View,想要在onCreate()方法中获取到宽高,使用这个方法也是可以做到的!