1

您可能也知道,您可以在代码中更改 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,但高度保持不变)

那么,我们如何实现呢?

4

1 回答 1

0

我在 stackoverflow 和 google 中搜索了很多,但找不到类似的问题和答案,所以我决定在这里发布它作为 Q/A 给面临同样问题的其他开发人员。您应该将params 变量的另一个属性(如果设置 widthPercent 则设置为 height ,如果设置 heightPercent 设置为 width )设置为0(零)!这是完整的解决方案:

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

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

于 2017-04-16T11:42:54.117 回答