加载页面后隐藏进度栏 [英] hide progresbar after loading the page
本文介绍了加载页面后隐藏进度栏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
progressbar
。 当页面加载到
WebView
中时,它不会消失任何人都可以帮助,因为我已经编写了代码,但它不起作用我有XML名称进度条(
android:id =@ + id / progressBar
)我在互联网上搜索了很多解决方案,但没有任何帮助 public class GenerateQRCodeActivity extends Activity implements OnClickListener {
public static final Uri MailTo = null;
private long lastMoveEventTime = -1;
private int eventTimeInterval = 40;
private ProgressBar progressBar;
私有WebView mWebView;
@SuppressLint(SetJavaScriptEnabled)
private String LOG_TAG =GenerateQRCode;
protected Activity MyActivity;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar =(ProgressBar)findViewById(R.id.progressBar);
progressBar.setMax(100);
ImageButton button2 =(ImageButton)findViewById(R.id.button2);
ImageButton button3 =(ImageButton)findViewById(R.id.button3);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
mWebView =(WebView)findViewById(R.id.webview);
mWebView.getSettings()。setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.requestFocusFromTouch();
mWebView.getSettings()。setRenderPriority(RenderPriority.HIGH);
mWebView.getSettings()。setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.setBackgroundColor(Color.parseColor(#4dc3f1));
if(Build.VERSION.SDK_INT> = 11){
mWebView.setLayerType(WebView.LAYER_TYPE_SOFTWARE,null);
}
mWebView.getSettings()。setRenderPriority(WebSettings.RenderPriority.HIGH);
mWebView.getSettings()。setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setDomStorageEnabled(true);
mWebView.setWebViewClient(new WebViewClientDemo());
mWebView.setWebChromeClient(new WebChromeClientDemo());
mWebView.loadUrl(http://www.google.com/);
mWebView.getSettings()。setJavaScriptEnabled(true);
mWebView.setWebViewClient(new HelloWebViewClient()); $ a
getWindow()。
}
私有类WebViewClientDemo扩展WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
返回true;
}
@Override
public void onPageFinished(WebView view,String url){
super.onPageFinished(view,url);
progressBar.setVisibility(View.GONE);
progressBar.setProgress(100);
}
@Override
public void onPageStarted(WebView视图,String url,Bitmap favicon){
super.onPageStarted(view,url,favicon);
progressBar.setVisibility(View.GONE);
progressBar.setProgress(0);
}
}
私有类WebChromeClientDemo扩展WebChromeClient {
public void onProgressChanged(WebView view,int progress){
progressBar.setProgress(progress);
}
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
if((keyCode == KeyEvent.KEYCODE_BACK)&& mWebView .canGoBack()){
mWebView.goBack();
返回true;
}
else {
finish();
}
return super.onKeyDown(keyCode,event);
}
@Override
public boolean onCreateOptionsMenu(菜单菜单){
return true;
}
解决方案
您可以使用这些行代码为
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webView.getSettings()。setBuiltInZoomControls(true);
webView.getSettings()。setUseWideViewPort(true);
webView.getSettings()。setLoadWithOverviewMode(true);
progressDialog = new ProgressDialog(ContestActivity.this);
progressDialog.setMessage(Loading ...);
progressDialog.show();
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView视图,String url){
if(progressDialog.isShowing()){
progressDialog.dismiss();
}
}
@Override
public void onReceivedError(WebView视图,int errorCode,String description,String failingUrl){
Toast.makeText(ContestActivity.this,Error:+ description,Toast.LENGTH_SHORT).show();
}
});
webView.loadUrl(你的URL这里);
Hi everybody I have a problem with my progressbar
.
it does not disappear when the page is loaded into WebView
can anyone please help because I have prbiert the codes but it does not work
I have the XML name progressbar(android:id="@+id/progressBar"
) I have searched a lot in internet for a solution but nothing has helped
public class GenerateQRCodeActivity extends Activity implements OnClickListener{
public static final Uri MailTo = null;
private long lastMoveEventTime = -1;
private int eventTimeInterval = 40;
private ProgressBar progressBar;
private WebView mWebView;
@SuppressLint("SetJavaScriptEnabled")
private String LOG_TAG = "GenerateQRCode";
protected Activity MyActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setMax(100);
ImageButton button2 = (ImageButton) findViewById(R.id.button2);
ImageButton button3 = (ImageButton) findViewById(R.id.button3);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.requestFocusFromTouch();
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.setBackgroundColor(Color.parseColor("#4dc3f1"));
if (Build.VERSION.SDK_INT >= 11) {
mWebView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
}
mWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setDomStorageEnabled(true);
mWebView.setWebViewClient(new WebViewClientDemo());
mWebView.setWebChromeClient(new WebChromeClientDemo());
mWebView.loadUrl("http://www.google.com/");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new HelloWebViewClient());
getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
private class WebViewClientDemo extends WebViewClient {
@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.GONE);
progressBar.setProgress(100);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.GONE);
progressBar.setProgress(0);
}
}
private class WebChromeClientDemo extends WebChromeClient {
public void onProgressChanged(WebView view, int progress) {
progressBar.setProgress(progress);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
else {
finish();
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return true;
}
解决方案
You can use these lines of code for it
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
progressDialog = new ProgressDialog(ContestActivity.this);
progressDialog.setMessage("Loading...");
progressDialog.show();
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
if (progressDialog.isShowing() ) {
progressDialog.dismiss();
}
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(ContestActivity.this, "Error:" + description, Toast.LENGTH_SHORT).show();
}
});
webView.loadUrl("YOUR URL HERE");
这篇关于加载页面后隐藏进度栏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文