在onCreate()、onStart(), onResume()中获取一个View的高度,值为0,google之后说是:如果这个view的长宽很确定不为0的话,那很可能是你过早的调用这些方法,也就是说在这个view被加入到rootview之前你就调用了这些方法,返回的值自然为0。解决该问题的方法有很多,主要就是延后调用这些方法。最后的解决方法是,通过 onWindowFocusChanged() 实现。
如:
public void onWindowFocusChanged(boolean hasFocus) {
int h = xxView.getHeight();
Toast.makeText(getApplicationContext(), h + "", Toast.LENGTH_SHORT).show();
}
此时能正常获取Activity中View的高度了!!