您可能也知道,您可以在代码中更改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但高度保持不变,因此您希望宽度和高度相等)
那么,我们如何实现这一目标呢?答案 0 :(得分:0)
我在stackoverflow和google中搜索了很多但是找不到相似的问题和答案,因此我决定将其作为Q / A发布在其他面临同样问题的开发人员身上。 你应该设置另一个属性(如果设置widthPercent则为height,如果设置heightPercent则设置width),将params变量设置为 0(零)!这是完整的解决方案:
PercentRelativeLayout.LayoutParams params = ((PercentRelativeLayout.LayoutParams) view.getLayoutParams());
PercentLayoutHelper.PercentLayoutInfo paramsInfo = params.getPercentLayoutInfo();
paramsInfo.widthPercent = newWidthPercent;
paramsInfo.aspectRatio = 1;
params.height = 0;
它会像我们期望的那样更新高度!