在约束布局中获取子布局的高度和宽度
Posted
技术标签:
【中文标题】在约束布局中获取子布局的高度和宽度【英文标题】:Get Height and Width of a child layout in contraintlayout 【发布时间】:2018-09-05 15:22:51 【问题描述】:我有一个约束布局,其中有一个子布局 (frame_layout)。使用 match_constraint 将宽度和高度设置为 0dp。一旦布局加载到屏幕上,我们如何获得这个 frame_layout 的高度和宽度?使用 layoutparams 给出 0dp。 getWidth 或 getHeight 再次给出 0dp。
【问题讨论】:
匹配约束将根据屏幕大小调整大小,因此在 oncreate 方法完成后,如果您尝试获取宽度和高度,它应该具有视图大小。或者使用延迟在 oncreate 中获取价值。 【参考方案1】:final FrameLayout layout = (FrameLayout) findViewById(R.id.YOUR_VIEW_ID);
ViewTreeObserver vto = layout.getViewTreeObserver();
vto.addOnGlobalLayoutListener (new OnGlobalLayoutListener()
@Override
public void onGlobalLayout()
layout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
int width = layout.getMeasuredWidth();
int height = layout.getMeasuredHeight();
);
【讨论】:
以上是关于在约束布局中获取子布局的高度和宽度的主要内容,如果未能解决你的问题,请参考以下文章