屏幕旋转后,其中一个视图对象的高度发生变化,我想知道像素中的高度值。
onConfigurationChanged
方法可能在视图完成旋转之前调用。 因此,如果我在此方法中测量视图大小,则大小仍然是之前的旋转值。
问题是如何在旋转完成后获取视图大小值而不重建Activity。
一种可能的方案:
private int viewHeight = 0; View view = findViewByID(R.id.idOfTheView); view.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener(){ @Override public void onGlobalLayout() { viewHeight = view.getHeight(); }
要么
@Override public void onResume(){ int viewHeight = 0; View view = findViewByID(R.id.idOfTheView); viewHeight = view.getHeight(); }