获取父级的宽度和高度

问题描述 投票:4回答:3

我已经基于LinearLayout创建了一个自定义视图,我需要根据父视图计算布局宽度和高度,但是每次我使用((View)this.getParent()).getMeasuredWidth()时都会得到0-我猜我调用了此函数为时过早!

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

android layout
3个回答
10
投票

尝试一下

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();
    }
  });
}

0
投票

Kotlin中,您可以这样使用:

   val height = (parent as View).height

-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.