屏幕旋转后,视图对象之一的高度发生了变化,我想知道以像素为单位的高度值。
该onConfigurationChanged
方法可能在视图完成旋转之前调用。所以如果我用这种方法测量视图大小,大小仍然是之前旋转的值。
问题是如何在不重建 Activity 的情况下获得旋转完成后的视图大小值。
屏幕旋转后,视图对象之一的高度发生了变化,我想知道以像素为单位的高度值。
该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();
}