我有一MyComposite
堂课,我想在其中设置大小变化的动画。
为此,我正在循环更改大小。
每次循环后,我都会调用layout()
.
不幸的是,Composite 不会在每次迭代后重新绘制,而是直接跳转到我的 Composite 的最终大小。
如何强制小部件在每次尺寸更改时重绘?
MyComposite 和动画:
//start
new Animation().start(myComposite);
...
public MyComposite(Composite parent, int style, int bgcolor) {
super(parent, style);
this.setBackground(getDisplay().getSystemColor(bgcolor));
}
@Override
public Point computeSize(int wHint, int hHint, boolean changed) {
return super.computeSize(width, height, changed);
}
class Animation{
public void start(MyComposite composite){
for(int i=0; i<1000; i++){
composite.width++;
composite.getParent().layout(true, true);
}
}
}
我的复合: