我目前在我正在处理的应用程序中有一个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);
}
}
});
答案 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); 它对我来说正常工作 希望你的代码简单而甜蜜......