我使用Android Devs(This)提供的示例实现了一个进度条,即使WebView似乎已完全加载并且在离开页面后它仍然存在,它似乎也不会消失。
我希望每次加载URL时都会显示进度条(即微调器)。
我对此很新,所以请保持温柔!
Logcat不断输出:
12-13 23:12:42.092 1630-1674/se.welovecode.tismatapp E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000b44
12-13 23:12:42.105 1630-1674/se.welovecode.tismatapp E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000bd0
12-13 23:12:42.125 1630-1674/se.welovecode.tismatapp E/eglCodecCommon﹕ **** ERROR unknown type 0x0 (glSizeof,72)
我的主要活动:`
package se.welovecode.tismatapp;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.KeyEvent;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
@SuppressLint("SetJavaScriptEnabled") public class MainActivity extends ActionBarActivity {
WebView myWebView;
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.welovecode.se/t-matapp");
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadUrl("file:///android_asset/index.html");
}
});
final Activity activity = this;
myWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 1000);
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return false;
}
return super.onKeyDown(keyCode, event);
}
}
答案 0 :(得分:0)
我认为你只是错误地调整了进度值。
WebChromeClient
报告进度as a percentage, in the 0-100 range。
newProgress - 当前页面加载进度,由整数表示 在0到100之间。
同时,setProgress()需要a number in the 0-10000 range。
进度条的进度。有效范围为0到10000 (包括在内)。 如果给出10000,则进度条将为 完全填满并将淡出。
因此,您应该乘以100,而不是1000。
public void onProgressChanged(WebView view, int progress) {
activity.setProgress(progress * 100);
}