【发布时间】:2014-10-05 03:35:21
【问题描述】:
![在此处输入图片描述][1]
我在警报对话框中有一个 webview。如何在 webview 加载之前显示加载器微调器(不是 PROGRESS BAR),然后在加载网页后隐藏?下面是我的代码。这里我没有为 webview 使用任何 xml,它是动态生成的简单 webview:
progress = new ProgressDialog(activity);
progress.setMessage("Please wait......");
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progress.setIndeterminate(true);
progress.show();
WebView wv = new WebView(activity);
//wv.loadUrl("http:\\www.google.com");
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setSupportZoom(true);
wv.getSettings().setUseWideViewPort(true);
wv.setClickable(true);
wv.setInitialScale(1);
wv.loadUrl("https://www.yahoo.com");
wv.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if(event.getAction() == KeyEvent.ACTION_DOWN)
{
WebView webView = (WebView) v;
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(webView.canGoBack())
{
webView.goBack();
return true;
}
break;
}
}
return false;
}
});
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// view.loadUrl(url);
// return true;
Log.d(TAG, "shouldOverrideUrlLoading");
String cleanUrl = url;
if (url.contains("?")) {
// remove the query string
cleanUrl = url.substring(0, url.indexOf("?"));
}
if (cleanUrl.endsWith("pdf")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "application/pdf");
try {
Uri uriUrl = Uri.parse(cleanUrl);
Intent intentUrl = new Intent(Intent.ACTION_VIEW,
uriUrl);
view.getContext().startActivity(intentUrl);
return true;
} catch (Exception e) {
System.out.println(e);
Toast.makeText(context, "No PDF Viewer Installed",
Toast.LENGTH_LONG).show();
}
} else {
view.loadUrl(url);
}
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
if (progress.isShowing()) {
progress.dismiss();
}
Log.d(TAG, "onPageFinished");
}
@Override
public void onPageStarted(WebView view, String url,
Bitmap favicon) {
// TODO Auto-generated method stub
Log.d(TAG, "onPageStarted");
}
});
builder.setView(wv);
builder.show();
return false;
【问题讨论】:
-
在我看来,您必须在要添加 web 视图的布局中添加进度条。您可以使用 WebChromeClient 的 onProgressChanged() 方法控制其可见性。
-
进度条不是微调器......我正在寻找一个圆形加载器......
-
您能否发布所需微调器的图像以更清晰?为此,您可以创建自己的逐帧动画。
-
你图片上的东西是
ProgressBardeveloper.android.com/design/building-blocks/progress.html
标签: android webview dialog spinner loader