gpt4 book ai didi

android - 如何根据父级的尺寸调整 Android View 的大小

转载 作者:IT老高 更新时间:2023-10-28 13:04:48 27 4
gpt4 key购买 nike

如何根据父布局的大小调整 View 的大小。例如,我有一个填满全屏的 RelativeLayout,我想要一个 subview ,比如一个 ImageView,占据整个高度和宽度的 1/2 ?

我尝试过覆盖 onMeasureonLayoutonSizeChanged 等所有内容,但无法正常工作... .

最佳答案

我不知道是否有人仍在阅读此线程,但 Jeff 的解决方案只会让您走到一半(有点字面意思)。他的 onMeasure 将做的是在一半的 parent 中显示一半的图像。问题是在 setMeasuredDimension 之前调用 super.onMeasure 将根据原始大小测量 View 中的所有子项,然后在 setMeasuredDimension 时将 View 切成两半调整它的大小。

相反,您需要调用 setMeasuredDimension(根据 onMeasure 覆盖的要求)为您的 View 提供一个新的 LayoutParams然后调用super.onMeasure。请记住,您的 LayoutParams 派生自 View 的父类型,而不是 View 的类型。

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth/2, parentHeight);
this.setLayoutParams(new *ParentLayoutType*.LayoutParams(parentWidth/2,parentHeight));
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

我相信您唯一会遇到父 LayoutParams 问题的情况是父级是 AbsoluteLayout(已弃用但有时仍然有用)。

关于android - 如何根据父级的尺寸调整 Android View 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com