我想在我的WebView
中加载网址时显示进度条,如果请求的网页加载完毕,我希望它会消失。
我找到的大多数答案(例如this one)都会覆盖方法WebViewClient.shouldOverrideUrlLoading(...)
。
但为什么呢?根据这个answer,没有必要调用这个方法 - 但为什么所有其他答案都可以呢?
在当前WebView中加载新网址时,让主机应用程序有机会接管控件。如果未提供WebViewClient,默认情况下WebView会要求活动管理器选择url的正确处理程序。如果提供了WebViewClient,则返回true表示主机应用程序处理url,而return false表示当前WebView处理该URL。
如果我只是覆盖方法WebViewClient.onPageFinished(...)
,它就像我期望的那样被调用。所以我可以在那里实现一个进度条,甚至没有覆盖其他方法?
通知主机应用程序页面已完成加载。此方法仅针对主框架调用。调用onPageFinished()时,渲染图片可能尚未更新。要获取新图片的通知,请使用onNewPicture(WebView,Picture)。
祝你好运, winklerrr