在android中使用Webview.loadUrl进行渲染时,如何显示加载栏?
使用webview显示html页面时 在完成渲染之前,将有几秒钟的空白页 为了获得更好的用户体验,有没有办法让它在这几秒钟内显示正在加载的图像?试试这个在android中使用Webview.loadUrl进行渲染时,如何显示加载栏?,android,webview,Android,Webview,使用webview显示html页面时 在完成渲染之前,将有几秒钟的空白页 为了获得更好的用户体验,有没有办法让它在这几秒钟内显示正在加载的图像?试试这个 ...... webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setT
......
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
...
试试这段代码。在
onPageStarted()
&隐藏在onPageFinished()
请尝试此代码以显示ProgressDialog
webView.setWebChromeClient(new WebChromeClient() {
private ProgressDialog mProgress;
@Override
public void onProgressChanged(WebView view, int progress) {
if (mProgress == null) {
mProgress = new ProgressDialog(getActivity());
mProgress.show();
}
mProgress.setMessage("Loading " + String.valueOf(progress) + "%");
if (progress == 100) {
mProgress.dismiss();
mProgress = null;
}
}
});
这就是我在科特林工作的原因:
private fun setupWebView() {
val webViewClient: WebViewClient = object: WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
view?.loadUrl(request?.url.toString())
return super.shouldOverrideUrlLoading(view, request)
}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
showProgressDialog()
super.onPageStarted(view, url, favicon)
}
override fun onPageFinished(view: WebView?, url: String?) {
hideProgressDialog()
super.onPageFinished(view, url)
}
}
webView.webViewClient = webViewClient
webView.settings.defaultTextEncodingName = "utf-8"
}
Java的简单代码--
查看本教程:如果您不想使用
WebChromeClient
(在接受的答案中),而想使用WebViewClient
,那么这是一个足够好的解决方案
private fun setupWebView() {
val webViewClient: WebViewClient = object: WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
view?.loadUrl(request?.url.toString())
return super.shouldOverrideUrlLoading(view, request)
}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
showProgressDialog()
super.onPageStarted(view, url, favicon)
}
override fun onPageFinished(view: WebView?, url: String?) {
hideProgressDialog()
super.onPageFinished(view, url)
}
}
webView.webViewClient = webViewClient
webView.settings.defaultTextEncodingName = "utf-8"
}
webView.setWebViewClient(new WebViewClient{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
pdialog.show();
}
@Override
public void onPageFinished(WebView view, String url)
{
pdialog.hide();
});