Android - 在WebView加载后隐藏标题栏

时间:2012-07-05 14:21:37

标签: android webview titlebar

我目前在我正在处理的应用程序中有一个WebView,并且在WebView中加载每个页面之后我想隐藏TitleBar。我看过这个question,而answer看起来应该完全符合我的要求,但是在页面加载完成后,TitleBar永远不会被隐藏。

我使用的代码与我链接的代码相同,但我也将其包括在内。我可以确认正在调用onProgressChanged,并且当页面加载完成时,进度确实报告为100,但是setProgressBarIndeterminateVisibility(false)和setProgressBarVisibility(false)似乎都没有做任何事情。我在发送内容之前使用requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)和requestWindowFeature(Window.FEATURE_PROGRESS)。

我在Android 2.3和4.1上测试了这个,两者的结果相同,TitleBar没有被隐藏。

mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int progress) {
                setProgress(progress * 100);
                if(progress == 100) {
                    setProgressBarIndeterminateVisibility(false);
                    setProgressBarVisibility(false);
                }
            }
});

3 个答案:

答案 0 :(得分:2)

我创建了一个针对android 2.3的android网络浏览器并遇到了同样的问题。 解决方案是在主要活动的某处添加这行代码。

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

确保在setContentView()方法之前放置此行,否则您的应用会强行关闭。

答案 1 :(得分:0)

旧标题栏的功能有限。您可能必须在活动布局中创建自己的标题栏,并使用setVisibility()自行显示/隐藏它。

如果您使用的是ActionBar而不是旧的标题栏(这是人们应该做的事情),它有show()hide()方法可以用来做什么你想要的。

答案 2 :(得分:0)

public void onProgressChanged(WebView视图,int进度)     {        if(progress< 100&& pb.getVisibility()== pb.Invisible)        {         pb.setvisibility(pb.Visible)       }

 pb.setProgress(progress);
if(progress==100)
{
      pb.setVisibility(ProgressBar.INVISIBLE);
}

*其中pb =(ProgressBar)findViewById(R.Id.progressbar); 它对我来说正常工作 希望你的代码简单而甜蜜......