关于View的getHeight()值为0

在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的高度了!!


你可能感兴趣的:(关于View的getHeight()值为0)