我已根据LinearLayout
创建自定义视图,我需要根据父视图计算布局宽度和高度,但每次使用((View)this.getParent()).getMeasuredWidth()
时我都会0
- 我想我太早称这个功能了!
有关如何实现此功能的任何想法?
答案 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"
,则无法获得宽度。