Пытаюсь сделать 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? (это я тоже пробовал, но в этом случае анимация не показывается вообще).
Да, циклический. Попробовал использовать Ваш спиннер — проблема осталась. М.б. проблема в реализации? Как это сделано у Вас? Поделитесь, пожалуйста, кодом.
Специально перепроверил, у меня точно так же, .setVisible(true/false);
ещё идея. Некоторые браузеры не отображают анимацию у гифок, если они масштабированны, т.е. их wight и height в разметке не соответствует реальным самого файла.
Попробуйте задать размеры loaderImage
Если я правильно понял Вам нужно сделать индикатор который будет крутиться до тех пор пока не загрузиться и не инициализируется GWT приложение? В этом случае лучше сделать по другому:
— Разместить индикатор на host странице как статическую картинку, так чтобы он отображался как только страница загрузиться в браузер.
— В тот момент когда GWT приложение проинициализируется и будет готово что-то отобразить, нужно используя DOM функции найти индикатор на host странице и спрятать его.
Выгода тут в том, что индикатор будет показываться и крутиться практически сразу же как только загрузиться страница. Если делать способом который Вы описали, то индикатор появится только тогда когда GWT приложение загрузиться, а это может потребовать существенно времени для большого приложения.
Спасибо за совет. Но, к сожалению, данный вариант не подойдет. Поскольку приложение должно быть польностью динамическим (встраивается на других сайтах).