在我的应用程序中,我有一个 BrowserField2 加载不同的页面,我想显示一个简单的旋转进度条/指示器。尽可能简单,没有百分比等 - 只是一个小动画向用户指示正在发生的事情。
我来自 Android 开发,那里有一个叫做 Progressbar 的东西,虽然对于黑莓来说它可能被称为完全不同的东西?(Blackberry 的进度条似乎总是包括计算进度)。
我应该寻找什么?
在我的应用程序中,我有一个 BrowserField2 加载不同的页面,我想显示一个简单的旋转进度条/指示器。尽可能简单,没有百分比等 - 只是一个小动画向用户指示正在发生的事情。
我来自 Android 开发,那里有一个叫做 Progressbar 的东西,虽然对于黑莓来说它可能被称为完全不同的东西?(Blackberry 的进度条似乎总是包括计算进度)。
我应该寻找什么?
我以一种相当非正统的方式解决了它,我可能不会推荐任何人,但我还是会写它,因为它可能会帮助那些急于完成它的人。请记住,这是一种不好的做法。
我的应用程序基本上由 4 个按钮和一个浏览器字段组成。
为了显示一个旋转的“加载动画”,我使用了由 browserfieldlistener 触发的自定义 PopupScreen 的 alishaik786 的提示(参见他的评论):
// 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);
}
});
}
然后在我的自定义 PopupScreen 中,我通过检查触摸的 event.getGlobalY() 和 event.getGlobalX() 并将其与按钮的位置进行比较来检查用户在“受保护的布尔触摸事件(TouchEvent 事件)”中单击的位置。如果用户在按钮的 X&Y 内按下,则弹出屏幕关闭,我触发按下按钮。
正如我所说,这是一种不好的做法(很多事情需要是静态的),但如果你想要一个快速而肮脏的解决方案,它就可以工作。