Android 以编程方式设置 widthPercent of PercentRelativeLayout(使用固定纵横



您可能也知道,您可以在代码中更改 PercentRelativeLayout 的 widthPercent 就像这样:

PercentRelativeLayout.LayoutParams params = ((PercentRelativeLayout.LayoutParams) view.getLayoutParams());
PercentLayoutHelper.PercentLayoutInfo paramsInfo = params.getPercentLayoutInfo();
paramsInfo.widthPercent = newWidthPercent; //e.g. change form 0.5 to 0.9
paramsInfo.aspectRatio = 1;

但是在运行时,您可以看到高度不会根据新的宽度百分比而变化(例如,由于纵横比等于 1,但高度保持不变,因此您期望宽度和高度相等(

那么,我们如何实现这一目标呢?

我在stackoverflow和google中搜索了很多,但找不到类似的问题和答案,所以我决定将其作为问答发布给其他面临相同问题的开发人员。您应该将参数变量的另一个属性(如果设置宽度百分比,则为高度,如果设置高度百分比,则为宽度(设置为 0(零(!以下是完整的解决方案:

PercentRelativeLayout.LayoutParams params = ((PercentRelativeLayout.LayoutParams) view.getLayoutParams());
PercentLayoutHelper.PercentLayoutInfo paramsInfo = params.getPercentLayoutInfo();
paramsInfo.widthPercent = newWidthPercent;
paramsInfo.aspectRatio = 1;
params.height = 0;

它将按照我们的预期更新高度!

相关内容

  • 没有找到相关文章

最新更新