0

我目前在我正在开发的应用程序中有一个 WebView,在 WebView 中加载每个页面后,我想隐藏 TitleBar。我已经看过这个问题答案看起来应该完全符合我的要求,但是在页面完成加载后 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);
                }
            }
});
4

3 回答 3

2

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

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

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

于 2012-07-05T15:48:55.077 回答
0

旧的标题栏在功能上有所限制。您可能必须在活动布局中创建自己的标题栏,并使用setVisibility().

如果您使用的是ActionBar而不是旧的标题栏(这是人们无论如何都应该做的),它具有您可以用来做您想做的事情的方法show()hide()

于 2012-07-05T16:22:59.727 回答
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); 它对我来说正常工作希望你让我的代码简单而甜蜜.....

于 2013-10-24T01:43:24.870 回答