我已经基于LinearLayout
创建了一个自定义视图,我需要根据父视图计算布局宽度和高度,但是每次我使用((View)this.getParent()).getMeasuredWidth()
时都会得到0
-我猜我调用了此函数为时过早!
关于如何实现此功能的任何想法?
尝试一下
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();
}
});
}
在Kotlin中,您可以这样使用:
val height = (parent as View).height
如果您的视图父级具有布局参数"android:layout_width="wrapContent"
,则无法获取宽度。