为什么我需要覆盖`shouldOverrideUrlLoading(...)`以在WebView中显示ProgressBar?

时间:2017-05-03 15:48:23

标签: android webview

我想在我的WebView中加载网址时显示进度条,如果请求的网页加载完毕,我希望它会消失。

我找到的大多数答案(例如this one)都会覆盖方法WebViewClient.shouldOverrideUrlLoading(...)

但为什么呢?根据这个answer,没有必要调用这个方法 - 但为什么所有其他答案都可以呢?

  

在当前WebView中加载新网址时,让主机应用程序有机会接管控件。如果未提供WebViewClient,默认情况下WebView会要求活动管理器选择url的正确处理程序。如果提供了WebViewClient,则返回true表示主机应用程序处理url,而return false表示当前WebView处理该URL。

如果我只是覆盖方法WebViewClient.onPageFinished(...),它就像我期望的那样被调用。所以我可以在那里实现一个进度条,甚至没有覆盖其他方法?

  

通知主机应用程序页面已完成加载。此方法仅针对主框架调用。调用onPageFinished()时,渲染图片可能尚未更新。要获取新图片的通知,请使用onNewPicture(WebView,Picture)。

祝你好运, winklerrr

0 个答案:

没有答案