Может быть, вы найдете этот код полезным из NotificationMole :
private class MoleAnimation extends Animation {
private int endSize;
private int startSize;
@Override
protected void onComplete() {
if (endSize == 0) {
borderElement.getStyle().setDisplay(Display.NONE);
return;
}
borderElement.getStyle().setHeight(endSize, Unit.PX);
}
@Override
protected void onUpdate(double progress) {
double delta = (endSize - startSize) * progress;
double newSize = startSize + delta;
borderElement.getStyle().setHeight(newSize, Unit.PX);
}
void animateMole(int startSize, int endSize, int duration) {
this.startSize = startSize;
this.endSize = endSize;
if (duration == 0) {
onComplete();
return;
}
run(duration);
}
}
Использование:
чтобы скрыть панель:
animation.animateMole (heightMeasure.getOffsetHeight (), 0,
animationDuration);
показать:
borderElement.getStyle () setDisplay (Display.BLOCK);.
animation.animateMole (0, heightMeasure.getOffsetHeight (), animationDuration);
Где borderElement
- контейнер DivElement и heightMeasure
- внутренний DivElement.