【问题标题】:Android: splash screen and webviewAndroid:启动画面和网页视图
【发布时间】:2012-06-05 13:37:57
【问题描述】:

我已经尝试了几天来获得在加载 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
          }
        });
    

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

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

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

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

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

谢谢!!!

【问题讨论】:

    标签: android multithreading webview screen splash-screen


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答,但正如我所说,我想使用第三种解决方案,在后台使用线程加载 webview。我想知道这是可能的以及如何做到这一点。我知道你的建议就足够了,但我真的很想知道如何用另一种方法做到这一点......
    • 例如,您可以使用 HttpGet 在线程中调用您的 Url 并检索响应。收到响应后,您可以使用 loadData(...) 方法加载 webview。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多