我正在开发一个显示来自不同来源的新闻的应用。点击新闻后,会打开一个activity
,其中包含WebView
,以提供与新闻相关的网页。与WebView
一起,我实施了ProgressBar
以显示加载页面的进度。我不希望它占用内容的空间,所以我试图在ActionBar
的底部实现它。但结果并不是我所排除的,它显示在下图中。
我使用的代码如下:
// create new ProgressBar and style it
final ProgressBar progressBar = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
progressBar.setLayoutParams(new android.app.ActionBar.LayoutParams(android.app.ActionBar.LayoutParams.MATCH_PARENT, 24));
// retrieve the top view of our application
final FrameLayout decorView = (FrameLayout) getWindow().getDecorView();
decorView.addView(progressBar);
ViewTreeObserver observer = progressBar.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
View contentView = decorView.findViewById(android.R.id.content);
progressBar.setY(contentView.getY()-10);
progressBar.setX(0);
ViewTreeObserver observer = progressBar.getViewTreeObserver();
observer.removeGlobalOnLayoutListener(this);
}
});
我指的是这个问题:ProgressBar under Action Bar
你能告诉我在代码中做错了什么,或者其他一些方法来实现这个目的。