即使在 android webview 中加载网站后,进度条也不会停止
progress bar is not stopped even after website loaded in android webview
我在 android webview 中添加了进度条,而 运行 项目进度条工作得很好,但问题是即使在网站加载后进度条也没有停止。
这是我尝试过的代码。
public class MainActivity extends AppCompatActivity {
WebView webView;
ProgressBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView2);
bar =(ProgressBar) findViewById(R.id.progressBar2);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("http://florro-001-site8.etempurl.com");
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
}
public class myWebClient extends WebViewClient{
@Override
public void onPageFinished(WebView view, String url) {
bar.setVisibility(View.GONE);
view.setVisibility(webView.VISIBLE);
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
bar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
设置可见性消失
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
bar.setVisibility(View.GONE);
return super.shouldOverrideUrlLoading(view, url);
}
你也创建了 class myWebClient
但是你忘了设置这个
替换此行
webView.setWebViewClient(new WebViewClient());
到
webView.setWebViewClient(new myWebClient());
您创建了内部 class myWebClient
,您在其中更改了可见性但从未将其设置为您的 webview 对象。
在onCreate()
方法中:
- 删除 2 行
webView.setWebViewClient(new WebViewClient());
- 添加这一行:
webView.setWebViewClient(new WebViewClient());
我在 android webview 中添加了进度条,而 运行 项目进度条工作得很好,但问题是即使在网站加载后进度条也没有停止。
这是我尝试过的代码。
public class MainActivity extends AppCompatActivity {
WebView webView;
ProgressBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView2);
bar =(ProgressBar) findViewById(R.id.progressBar2);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("http://florro-001-site8.etempurl.com");
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
}
public class myWebClient extends WebViewClient{
@Override
public void onPageFinished(WebView view, String url) {
bar.setVisibility(View.GONE);
view.setVisibility(webView.VISIBLE);
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
bar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
设置可见性消失
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
bar.setVisibility(View.GONE);
return super.shouldOverrideUrlLoading(view, url);
}
你也创建了 class myWebClient
但是你忘了设置这个
替换此行
webView.setWebViewClient(new WebViewClient());
到
webView.setWebViewClient(new myWebClient());
您创建了内部 class myWebClient
,您在其中更改了可见性但从未将其设置为您的 webview 对象。
在onCreate()
方法中:
- 删除 2 行
webView.setWebViewClient(new WebViewClient());
- 添加这一行:
webView.setWebViewClient(new WebViewClient());