为了简单起见,假设我有 1 个 Activity ,其中有一些 textView、progressSpinner 和 webView。
webView 可见性设置为“消失”,所有其他 View 都设置为可见。当页面加载完成并且我要删除的 2 个 div 被隐藏时,我想隐藏所有可见项目并显示完全加载的 webView。
然而,当我运行它时,我看到所有可见的项目,并且 webView 此时没有显示(这很好)。几秒钟后,可见项目消失,出现一个空白的 webView(不应该发生),然后页面加载,然后 2 个 div 被隐藏。
我想向用户隐藏它,如何将其设置为仅在页面完全加载完成并且隐藏 2 个 div 后才显示 webView?
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript:$('#MainMenu').hide()");
webview.loadUrl("javascript:$('#EmployeeDashboard').hide()");
android.os.SystemClock.sleep(2500); // My attempt to allow the divs to be hidden before it's displayed to the user
findViewById(R.id.progressSpinner).setVisibility(View.GONE);
findViewById(R.id.imageView1).setVisibility(View.GONE);
findViewById(R.id.textView1).setVisibility(View.GONE);
findViewById(R.id.textView2).setVisibility(View.GONE);
findViewById(R.id.tvLoading).setVisibility(View.GONE);
findViewById(R.id.webview).setVisibility(View.VISIBLE);
}
在 xml 中我有:
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:visibility="gone" />
最佳答案
我假设您正在创建 webview 对象,然后调用 loadUrl(...)
之后,不要将 contentView 设置为您的 webView,而是将其设置为您的 View /图形/加载时要显示的任何内容。
在 onPageFinished 中,将 setContentView 调用到您的 webView。
MyWebView myWebView = new MyWebView();
myWebView.loadUrl ("http://whatever.com/goes/here");
setContentView(R.loadingurlspinner);
然后在你的onPageFinished()中
//stuff you have above
setContentView(myWebView);
关于javascript - 当页面完全加载完成时显示 Webview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15777788/