问题对人有帮助,内容完整,我也想知道答案 0 问题没有实际价值,缺少关键内容,没有改进余地 我发现在使控件调用setLayoutParams()之后,立即通过getWidth()或getHeight()不能拿到其更新后的值。我异步打印后发现,要等一段时间后这两个获取宽高的函数才能返回更新后的值。那么问题就来了,什么时候getWidth()才能返回更新后的值呢?这个时候有没有什么监听或是回调? 关注 | 2 收藏 | 1 评论邀请回答编辑举报历史版本 李斯维 864 2016-04-11 提问 提交评论 × 评论支持部分 Markdown 语法:**bold**_italic_[link](http://example.com)> 引用`code`- 列表。同时,被你 @ 的用户也会收到通知
答案对人有帮助,有参考价值 2 答案没帮助,是错误的答案,答非所问 已采纳 view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { view.getViewTreeObserver().removeGlobalOnLayoutListener(this); // getWidth or getHeight; } }); 评论 · 3赞赏编辑 kyleduo 36 更新 提交评论 × 评论支持部分 Markdown 语法:**bold**_italic_[link](http://example.com)> 引用`code`- 列表。同时,被你 @ 的用户也会收到通知