ProgressBar显示在ActionBar

时间:2015-10-12 10:43:37

标签: android android-actionbar android-progressbar

我正在开发一个显示来自不同来源的新闻的应用。点击新闻后,会打开一个activity,其中包含WebView,以提供与新闻相关的网页。与WebView一起,我实施了ProgressBar以显示加载页面的进度。我不希望它占用内容的空间,所以我试图在ActionBar的底部实现它。但结果并不是我所排除的,它显示在下图中。

<code>ProgresBar</code> In <code>ActionBar</code>

我使用的代码如下:

// 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

你能告诉我在代码中做错了什么,或者其他一些方法来实现这个目的。

1 个答案:

答案 0 :(得分:0)

使用offsetTopAndBottom更改进度条的偏移量。 请参阅:ProgressBar