#gwt #panel
#gwt #панель
Вопрос:
Я хотел бы знать, возможно ли создать анимацию на панели «Скрыть / показать» с помощью простого gwt (без дополнительных библиотек).
Любые предложения приветствуются.
Спасибо
Ответ №1:
Классы компоновки GWT поддерживают анимацию. Проверьте Layout
, DockLayout
ru SplitLayout
. Кроме того, существует Animation
класс, который используется в нескольких панелях для использования анимации для отображения / скрытия содержимого. Просто проверьте классы, используя класс Animation.
Ответ №2:
Возможно, вы найдете этот код полезным из 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(Отображать.БЛОК);
animation.animateMole(0, heightMeasure.getOffsetHeight(), animationDuration);
Где borderElement
— элемент разделения контейнера и heightMeasure
— внутренний элемент разделения.