加载页面完成后显示Webview?

时间:2013-04-03 02:18:42

标签: javascript android webview android-webview

为简单起见,假设我有1个活动,其中包含一些textViews,一个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" />

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

发现我因为重定向而遇到麻烦,这对我有所帮助: How to listen for a WebView finishing loading a URL?