Browse Source

REPORT-55694 【组件背景分离】组件复用-组件/控件锁定时,通过右侧设置面板先增加宽度时,高度不变;但减小宽度时,高度会1单位1单位减小,最后组件变成一条横线

【问题原因】
1. 直接编辑宽度和高度,互相联动,存在小数舍入的问题,比如20.75,只取20,导致越来越小
2. 在锁定比例功能从未启动到启动时,需要保存尺寸比例,并持久化,否则再次打开模版后,原有的比例数据
就消失了
【改动思路】
1. WidgetBoundPane.java中widthSpinner和heightSpinner互相关联时,
使用Math.round取整,而不是直接取整数部分
2. 在启用比例锁定时,保存当前的aspectRatioBackup,除非关闭比例锁定,否则不更新改值
3. 高度或宽度为0时,取消比例锁定,避免出现除0问题
4. 绝对布局内组件移入移出时,重新计算锁定的尺寸比例
final/10.0
Starryi 3 years ago
parent
commit
e527377c5c
  1. 12
      designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java

12
designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java

@ -265,11 +265,13 @@ public class WidgetBoundPane extends BasicPane {
@Override
public void stateChanged(ChangeEvent e) {
if (isLockEnabled() && isLocked()) {
setLocked(false);
aspectRatioBackup = -1;
} else if (aspectRatioBackup > 0) {
double value = mHeightSpinner.getValue() * aspectRatioBackup;
mWidthSpinner.setValue(Math.round(value), false);
if (mHeightSpinner.getValue() == 0) {
setLocked(false);
aspectRatioBackup = -1;
}else if (aspectRatioBackup > 0) {
double value = mHeightSpinner.getValue() * aspectRatioBackup;
mWidthSpinner.setValue(Math.round(value), false);
}
}
}
});

Loading…
Cancel
Save