0

为简单起见,假设我有 1 个活动,其中包含一些 textView、progressSpinner 和 webView。

webView 可见性设置为“消失”,所有其他设置为可见。当页面完成加载并且我要删除的 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" />
4

2 回答 2

2

我假设您正在创建 webview 对象,然后调用 loadUrl(...)

之后,不要将 contentView 设置为您的 webView,而是将其设置为您的视图/图形/您在加载时要显示的任何内容。

在您的 onPageFinished 中,将 setContentView 调用到您的 webView。

MyWebView myWebView = new MyWebView();
myWebView.loadUrl ("http://whatever.com/goes/here");
setContentView(R.loadingurlspinner);

然后在你的 onPageFinished()

//stuff you have above
setContentView(myWebView);
于 2013-04-03T03:37:20.887 回答
1

发现我因为重定向而遇到麻烦,这对我有帮助: 如何监听 WebView 完成加载 URL?

于 2013-04-05T16:05:10.247 回答