屏幕旋转后, View 对象之一的高度改变了,我想知道像素的高度值。

在完成旋转 View 之前,可能会调用onConfigurationChanged方法。因此,如果我用这种方法测量 View 大小,那么大小仍然是以前的旋转值。

问题是旋转完成后如何在不重建Activity的情况下获取 View 大小值。

最佳答案

一种可能的解决方案:

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();
}

10-08 17:45