BrowserField2的Blackberry简单进度条

时间:2012-01-24 09:45:07

标签: blackberry progress-bar browserfield

在我的应用程序中,我有一个BrowserField2加载不同的页面,我想显示一个简单的旋转进度条/指示器。尽可能简单,没有百分比等 - 只是一个小动画,向用户表明正在发生的事情。

我来自Android开发,有这样的东西叫做Progressbar,虽然对于Blackberry来说它可能被称为完全不同的东西? (Blackberry的Progressbar似乎总是包括计算所取得的进展)。

我应该寻找什么?

1 个答案:

答案 0 :(得分:1)

我以一种相当不正统的方式解决了它,我可能不会推荐任何人,但无论如何我都会写它,因为它可能会帮助那些急于完成它的人。请记住,这是一种不好的方式。

我的应用基本上由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()&来检查用户点击“protected boolean touchEvent(TouchEvent event)”的位置。触摸的event.getGlobalX()并将其与按钮的位置进行比较。如果用户在按钮的X& Y内按下,则弹出屏幕关闭,我触发按下按钮。

正如我所说,这是一种不好的做法(很多事情需要保持静止),但是如果你想要一个快速而肮脏的解决方案,它就会起作用。