如何管理Android WebVIEW的空白白负载屏幕?

如何管理Android WebVIEW的空白白负载屏幕?,android,webview,screen,loading,Android,Webview,Screen,Loading,这与其说是一个直接问题,不如说是一个直观的问题,但当我的应用程序中加载WebView时,屏幕会在2-4秒内保持白色空白,直到内容完全加载为止。时间取决于正在加载的内容的大小 是否有一种管理方法,以便在加载时屏幕只刷新内容?类似于“加载…”动画或类似的东西?我只是不想把纯白的屏幕呈现给我的用户 我有一个启动屏幕,然后加载WebView。WebView在初始空白暂停(加载时)后工作正常,但我希望在页面加载或出现带有进度加载器的黑屏之前将其保留在特定屏幕上 是否有什么东西可以检测到负载是否已完成?如果

这与其说是一个直接问题,不如说是一个直观的问题,但当我的应用程序中加载WebView时,屏幕会在2-4秒内保持白色空白,直到内容完全加载为止。时间取决于正在加载的内容的大小

是否有一种管理方法,以便在加载时屏幕只刷新内容?类似于“加载…”动画或类似的东西?我只是不想把纯白的屏幕呈现给我的用户

我有一个启动屏幕,然后加载WebView。WebView在初始空白暂停(加载时)后工作正常,但我希望在页面加载或出现带有进度加载器的黑屏之前将其保留在特定屏幕上

是否有什么东西可以检测到负载是否已完成?如果是这样的话,我可以用它作为触发器

有人知道如何管理这个空白的白色屏幕吗

谢谢


/r

也许你可以看看上一期


您也可以将webview设置为透明:

webview.setBackgroundColor(0x00000000); 

答案是没有好的答案。正如您所说,您想要的是,在加载新内容之前,webview显示当前内容。。。就像普通的浏览器一样。它不会那样做的


您可以显示加载动画,但这仍然不是一个好的用户体验。如果制作全屏类型的动画,用户会对闪烁的屏幕感到不安。如果在顶部/底部执行浏览器类型的进度,则看起来很奇怪,因为大部分页面仍然是白色的。

只需将此代码放在onCreate中即可

               ProgressDialog _dialog ;                   
               my_web_view.setWebViewClient(new WebViewClient(){


       @Override
       public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        _dialog =ProgressDialog.show(Store_locator.this, "", "Please wait...");
        super.onPageStarted(view, url, favicon);
       }
       @Override
       public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);
        _dialog.dismiss();
       }

       @Override
       public void onReceivedError(WebView view, int errorCode,
         String description, String failingUrl) {
        // TODO Auto-generated method stub
        super.onReceivedError(view, errorCode, description, failingUrl);
        try{
         _dialog.dismiss();
        }catch (Exception e) {
         // TODO: handle exception
        }
       }

      });

要管理空白白屏,您可以做的是为布局xml设置适当的背景颜色(非白色),使webview的可见性消失在布局xml文件中,并向其添加webviewclient,并且每当URL加载完成时,将webview的可见性设置为可见


            public void onPageFinished(WebView view, String url) {
                // do your stuff here
                webView.setVisibility(View.VISIBLE);
            }
        });
webView.setBackgroundColor(Color.TRANSPARENT) 删除webview的白色屏幕

webview.setBackgroundColor(0x00000000);
为我工作 例如:我不使用
0x00000000
,而是使用我的颜色代码
6424633
(十六进制代码-
(620839
)作为红色背景


因此,当启动屏幕意图打开Mainactivity时,它将显示红色背景,而不是白色空白屏幕,当webview加载URL时,它将消失。

谢谢-完美开始。我搜索了错误的关键字!有时,即使页面未完全呈现,也会调用onPageFinished,因此您可能会在webview上看到一个空白屏幕。要在页面完全呈现之前显示进度对话框,您必须使用onLoadResource并检查页面的进度。检查此答案这是为我解决的问题。在XML中添加
android:background=“@android:color/transparent”
没有任何效果。
webView.setBackgroundColor(color.transparent)
会。在url加载之前,它会不会让应用程序看起来像被冻结了几秒钟?对我来说,没有工作-onPageFinished调用得太早,所以这2-4秒的白色屏幕仍然没有修复