【发布时间】:2016-01-06 04:10:55
【问题描述】:
我有一个显示启动页面的应用程序,并在 WebView 中加载 URL 时删除了该启动页面。以下是我们用来移除启动页的相关代码:
browser.setWebViewClient(new BrowserClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// Work around for WebView onPageFinished called twice
if (flag == true) {
browser.setVisibility(View.VISIBLE);
splashImage.setVisibility(View.INVISIBLE);
pageLoader.setVisibility(View.INVISIBLE);
} else {
flag = true;
}
}
});
这段代码可以工作......除了它很慢。在网页加载很久之后,启动页面需要很长时间才能删除。
关于如何可靠地检测 WebView 何时加载页面是否有任何提示?过去几天我一直在研究这个问题,但我似乎找不到任何可靠的东西。
我看到的最有希望的是以下,但是把这段代码放到Android Console中会报错:
@Override
public void invalidate() {
super.invalidate();
if (getContentHeight() > 0) {
// WebView has displayed some content and is scrollable.
}
}
谢谢!
编辑:有很多答案建议 onPageFinished,甚至有人将其标记为重复项,并带有指向使用 onPageFinished 的解决方案的链接。伙计们,我们已经在使用 onPageFinished。由于不可靠,我们正在寻找 onPageFinished 的替代方法。
【问题讨论】:
-
这不是重复的。您链接的内容使用 onPageFinished 显示解决方案。如果您仔细阅读我们的帖子,您会发现我们已经在使用 onPageFinished 并且它可以工作......除了它有问题,所以我们正在寻找与 onPageFinished 不同的东西。