【发布时间】:2017-11-17 18:55:29
【问题描述】:
我正在使用 WebViewClient 加载网页,我想为我的代码显示进度条。我的代码没有逐渐加载进度。它只显示 100% 的进度。如何根据网页加载时间设置进度?
出于我的目的,我只需要在 WebView 上加载“https://www.google.com”。请帮忙。谢谢你。代码如下:
活动文件
public class MainActivity extends Activity {
private WebView webView;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int vc = Color.parseColor("#feca01");
progressBar = (ProgressBar) findViewById(R.id.determinateBar);
progressBar.getProgressDrawable().setColorFilter(
vc, android.graphics.PorterDuff.Mode.SRC_IN);
webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new MyBrowser());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://deelay.me/5000/http://www.google.com");
}
private class MyBrowser extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
progressBar.incrementProgressBy(10);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
progressBar.setVisibility(View.VISIBLE);
// progressBar.setProgress(0);
}
}
}
XML 文件
`
<ProgressBar
android:id="@+id/determinateBar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="400dp"
android:padding="0dp"
android:layout_height="2dp" />
<WebView
android:layout_height="match_parent"
android:id="@+id/webView"
android:layout_weight="0.91"
android:layout_width="match_parent"
android:padding="0dp"
/>
`
【问题讨论】:
-
见this 回答。
-
参考链接:stackoverflow.com/questions/25911185/… 并检查它是否符合您的要求
-
@KunalChawla,它没有用。 :-\
-
@ThillaiK。它也没有工作。
标签: android webview android-progressbar webviewclient