@sonriente

GWT vs GIF amimation

Пытаюсь сделать loader для приложения GWT c помощью обычного GIFчика, который показывается/прячется в нужный момент. Делаю так:

AbsolutePanel loader = new AbsolutePanel();
Image loaderImage = new Image("images/loader.gif");

public Constructor() {
loaderImage.setStyleName("loader-image");
loader.add(loaderImage);
loader.setStyleName("loader");
RootPanel.get().add(loader);
}


Далее убираю/показываю с помощью функции:

public void showHideLoader(String mode) {

if (mode.equals("hide")) {
loader.setVisible(false);
} else {
loader.setVisible(true);
}
}


Все хорошо работает, только анимация показывается _только_ один раз. Т.е. если я спрячу лоадер, а потом его перезапущу, то анимации не будет, а будет показываться статичная картинка. Печалька:(
Гугль ничего путного не выдает. Как решить проблему? Быть может, кто-нибудь пробовал прикрутить какой-нибудь spin.js к gwt? (это я тоже пробовал, но в этом случае анимация не показывается вообще).
  • Вопрос задан
  • 2871 просмотр
Пригласить эксперта
Ответы на вопрос 2
По моему, GWT тут вообще не причем, у меня прекрасно работает таким-же способом:
http://bash-rdr.appspot.com/ — при смене цитат появляется спиннер.

Может дело в Вашей гифке, она точна зациклена?
Попробуйте открыть её в браузере напрямую — не останавливается анимация?
Ответ написан
@vimvim
Если я правильно понял Вам нужно сделать индикатор который будет крутиться до тех пор пока не загрузиться и не инициализируется GWT приложение? В этом случае лучше сделать по другому:
— Разместить индикатор на host странице как статическую картинку, так чтобы он отображался как только страница загрузиться в браузер.
— В тот момент когда GWT приложение проинициализируется и будет готово что-то отобразить, нужно используя DOM функции найти индикатор на host странице и спрятать его.

Выгода тут в том, что индикатор будет показываться и крутиться практически сразу же как только загрузиться страница. Если делать способом который Вы описали, то индикатор появится только тогда когда GWT приложение загрузиться, а это может потребовать существенно времени для большого приложения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы