我想做如下的事情:
rootLayout.getLayoutParams().height = 100;
目前我的“loadData”方法中有这一行。问题是 - 'layoutParams' 似乎为空,直到调用 'loadData' 后的某个时间(但在它明显显示之前)。
是否可以在某个地方放置这条线,其中layoutParams将被实例化,但仍然在 View 第一次显示之前?
最佳答案
rootLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
rootLayout.getViewTreeObserver()
.removeOnGlobalLayoutListener(this);
} else {
rootLayout.getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
}
rootLayout.getLayoutParams().height = 100;
rootLayout.requestLayout();
}
});
关于java - Android:我可以在绘制 View 之前更改 View 的高度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28763992/