获取父级宽度和高度

时间:2013-12-21 12:51:26

标签: android layout

我已根据LinearLayout创建自定义视图,我需要根据父视图计算布局宽度和高度,但每次使用((View)this.getParent()).getMeasuredWidth()时我都会0 - 我想我太早称这个功能了!

有关如何实现此功能的任何想法?

3 个答案:

答案 0 :(得分:9)

试试这个

ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();
if (viewTreeObserver.isAlive()) {
  viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
      view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
      viewWidth = view.getParent().getWidth();
      viewHeight = view.getParent().getHeight();
    }
  });
}

答案 1 :(得分:2)

科特林中,您可以这样使用:

   val height = (parent as View).height

答案 2 :(得分:-2)

如果您的视图父级具有布局参数"android:layout_width="wrapContent",则无法获得宽度。