1

我已经尝试了几天来获得在加载 web 视图时显示启动屏幕的解决方案。

我环顾四周,有几种方法: - 制作活动只是为了显示启动屏幕,等待几秒钟,然后启动 webview 活动 -> 这不是解决方案,因为在启动屏幕关闭后再次完成所有加载

  • 第二种方法是这样的:

       myWebView = (WebView) findViewById(R.id.webview);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    myWebView.setWebViewClient(new WebViewClient() {
       public void onPageFinished(WebView view, String url) {
           findViewById(R.id.webview).setVisibility(View.VISIBLE);
    
           //hide loading image
           findViewById(R.id.imageView1).setVisibility(View.GONE);
           //show webview
          }
        });
    

    这可行,但在转换到 webview 时再次出现轻微的白屏。而且您也无法控制启动画面的时间。

  • 第三种解决方案是我想做的,但是(即使经过几天的搜索和尝试)也不知道如何 -> 在一个线程中显示启动画面,在另一个线程中为 webview 准备所有内容,然后简单地切换到 webview .

我的问题是,谁能告诉我从第三种解决方案开始的地方?

  • 我想尝试这样的事情!但我不知道如何将 webview 传递给另一个活动,从我读到的内容来看,这甚至不是一个好主意。

任何建议,想法,指针?有没有办法显示启动画面,在另一个线程中准备(膨胀)webview,然后在加载 url(以及其他所有内容)完成后切换到它?

谢谢!!!

4

1 回答 1

1

尝试在 Webview 上使用 WebChromeClient。在 WebChromeClient 中,您有一个 onProgressChange 方法。

当 onProgressChange 告诉您页面已完成加载时,您可以消失启动屏幕。

编辑:例如,您可以使用 HttpGet 在线程中调用您的 Url 并检索响应。当您得到响应时,您可以使用 loadData(...) 方法加载 webview。

于 2012-06-05T13:42:18.020 回答