我发现在使控件调用setLayoutParams()
之后,立即通过getWidth()
或getHeight()
不能拿到其更新后的值。我异步打印后发现,要等一段时间后这两个获取宽高的函数才能返回更新后的值。
那么问题就来了,什么时候getWidth()
才能返回更新后的值呢?这个时候有没有什么监听或是回调?
巴扎黑2017-04-17 16:38:05
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
// getWidth or getHeight;
}
});