Android 带有WebView的ViewPager中的ProgressBar
我在ViewPager中有一个webview(支持v4),我想在加载应用程序时放置一个progressbar。这是我到目前为止所做的,但它不起作用。 基本上,我让它指向我的WebVIew布局文件中的progressbar,但它没有加载任何东西Android 带有WebView的ViewPager中的ProgressBar,android,webview,progress-bar,android-viewpager,Android,Webview,Progress Bar,Android Viewpager,我在ViewPager中有一个webview(支持v4),我想在加载应用程序时放置一个progressbar。这是我到目前为止所做的,但它不起作用。 基本上,我让它指向我的WebVIew布局文件中的progressbar,但它没有加载任何东西 private class MyPagerAdapter extends PagerAdapter { public int getCount() { return 3; }
private class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 3;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.web_view;
break;
case 1:
resId = R.layout.media;
break;
case 2:
resId = R.layout.youtube;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
web = (WebView) findViewById(R.id.web_view);
final ProgressBar bar = (ProgressBar) findViewById(R.id.loading);
web.loadUrl(url);
web.getSettings().setJavaScriptEnabled(true);
web.setWebViewClient(new WebViewClient () {
@Override
public void onLoadResource(WebView view, String url) {
// TODO Auto-generated method stub
web.loadUrl("javascript:var element = document.getElementById('social-tabs'); element.parentElement.removeChild(element);");
web.loadUrl("javascript:var element = document.getElementById('omc-top-banner'); element.parentElement.removeChild(element);");
web.loadUrl("javascript:var element = document.getElementById('simplereach- slide-element'); element.parentElement.removeChild(element);");
}
@Override
public void onPageStarted(WebView view, String url,
Bitmap favicon) {
// TODO Auto-generated method stub
bar.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
bar.setVisibility(View.GONE);
}
});
return view;
}
您需要在webview客户端中实现onProgressChanged方法以适当地更新进度条:
final Activity MyActivity = this;
web.setWebViewClient(new WebViewClient () {
.
.
.
public void onProgressChanged(WebView view, int progress) {
MyActivity.setProgress(progress * 100);
ProgressBar pb = (ProgressBar) findViewById(R.id.progressBar2);
//pb is equivalent to your "bar" progress bar variable
pb.setVisibility(View.VISIBLE);
pb.setProgress(progress);
if (progress == 100) {
pb.setVisibility(View.GONE);
}
}
}