0

我发现在使控件调用setLayoutParams()之后,立即通过getWidth()getHeight()不能拿到其更新后的值。我异步打印后发现,要等一段时间后这两个获取宽高的函数才能返回更新后的值。
那么问题就来了,什么时候getWidth()才能返回更新后的值呢?这个时候有没有什么监听或是回调?

李斯维 864
2016-04-11 提问

1 个回答

2

已采纳
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        view.getViewTreeObserver().removeGlobalOnLayoutListener(this);

        // getWidth or getHeight;
    }
});

推广链接