Я решил это довольно неортодоксальным способом, что я, вероятно, не рекомендовал бы НИКОМУ, но я все равно напишу это, так как, возможно, это поможет кому-то, кто спешит, сделать это. Просто помните, что это плохой способ сделать это.
Мое приложение в основном состоит из 4 кнопок и поля браузера.
Чтобы отобразить вращающуюся «загрузочную анимацию», я использую подсказку alishaik786 (см. Его комментарии) настраиваемого PopupScreen, запускаемого браузером fieldlistener:
// BrowserFieldListener to catch when a page started loading and when it is finished
BrowserFieldListener listener = new BrowserFieldListener() {
public void documentCreated(BrowserField browserField, ScriptEngine scriptEngine, Document document) throws Exception{
displayLoadAnimation();
// see method below
}
public void documentLoaded(BrowserField browserField, Document document) throws Exception{
try{
popUp.close();
}catch(IllegalStateException es){
es.printStackTrace();
}
}
};
// The method for showing the popup
private void displayLoadAnimation(){
popUp = new LoadingPopupScreen();
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().pushScreen(popUp);
}
});
}
Затем в своем пользовательском всплывающем экране я проверяю, где пользователь щелкает в «защищенном логическом touchEvent (событие TouchEvent)», проверяя касание event.getGlobalY () & event.getGlobalX () и сравнивая его с позициями кнопок. , Если пользователь нажимает в пределах X & Y кнопки, всплывающий экран закрывается, и я нажимаю кнопку, которая нажимается.
Как я уже сказал, это плохой способ сделать это (многие вещи должны быть статичными), но он работает, если вы хотите быстрое и грязное решение.