当 webView 在 Android 完成时更新父视图
Update the parent view when webView finishes on Android
我有一个 web 视图需要一些时间来加载,所以我有一个进度指示器应该显示,直到 web 视图准备就绪。但是,最好的方法是什么?我有:
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
//mListener.finishedLoadingHtml();
ProgressBar bar = (ProgressBar) view.findViewById(R.id.article_content_progressIndicator);
bar.setVisibility(View.GONE);
}
});
但这不起作用,因为 bar = null。有没有一种简单的方法可以从回调中访问 progressBar ?我仍在为 Android 视图层次结构等问题苦苦挣扎
这可能会有所帮助。
webview.setWebViewClient(new WebViewClient() {
public void onProgressChanged(WebView view, int progress)
{
//Make the bar disappear after URL is loaded, and changes string to Loading...
setTitle("Loading...");
setProgress(progress * 100); //Make the bar disappear after URL is loaded
// Return the app name after finish loading
if(progress == 100)
setTitle(R.string.app_name);
}
});
我通过 javaScript
开始时,我在 webView
上显示 progressBar
,当页面完全加载时,我使用 java 脚本通知 java 应该通过这种方式消失 progressBar
:
myWebView.addJavascriptInterface(new JavaScriptInterface(context),
"jsInterface");
ProgressBar bar = (ProgressBar) view.findViewById(R.id.article_content_progressIndicator);
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void pageLoaded() {
if(bar!=null)
bar.setVisibility(View.GONE);
}
}
并在 html 页面内通过 java 脚本调用方法如下:
function onPageLoad(){
jsInterface.pageLoaded();
}
我有一个 web 视图需要一些时间来加载,所以我有一个进度指示器应该显示,直到 web 视图准备就绪。但是,最好的方法是什么?我有:
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
//mListener.finishedLoadingHtml();
ProgressBar bar = (ProgressBar) view.findViewById(R.id.article_content_progressIndicator);
bar.setVisibility(View.GONE);
}
});
但这不起作用,因为 bar = null。有没有一种简单的方法可以从回调中访问 progressBar ?我仍在为 Android 视图层次结构等问题苦苦挣扎
这可能会有所帮助。
webview.setWebViewClient(new WebViewClient() {
public void onProgressChanged(WebView view, int progress)
{
//Make the bar disappear after URL is loaded, and changes string to Loading...
setTitle("Loading...");
setProgress(progress * 100); //Make the bar disappear after URL is loaded
// Return the app name after finish loading
if(progress == 100)
setTitle(R.string.app_name);
}
});
我通过 javaScript
开始时,我在 webView
上显示 progressBar
,当页面完全加载时,我使用 java 脚本通知 java 应该通过这种方式消失 progressBar
:
myWebView.addJavascriptInterface(new JavaScriptInterface(context),
"jsInterface");
ProgressBar bar = (ProgressBar) view.findViewById(R.id.article_content_progressIndicator);
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void pageLoaded() {
if(bar!=null)
bar.setVisibility(View.GONE);
}
}
并在 html 页面内通过 java 脚本调用方法如下:
function onPageLoad(){
jsInterface.pageLoaded();
}