gpt4 book ai didi

android - 使用 AppCompat 的 ActionBar 下方的不确定水平 ProgressBar?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:52:32 25 4
gpt4 key购买 nike

我一直在寻找有关如何使用 AppCompat 将不确定的水平进度条放置在操作栏下方的答案。我能够让水平进度条出现,但它位于操作栏的顶部。我希望它在操作栏下方/下方有点像 gmail 的操作方式(除了没有下拉刷新)。

我使用以下代码来显示进度条:

supportRequestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main_activity);
setSupportProgressBarIndeterminate(Boolean.TRUE);
setSupportProgressBarVisibility(true);

但这会将水平进度条放置在操作栏的顶部。有人知道如何将进度条放在操作栏下方吗?

最佳答案

我最近遇到了类似的问题,我通过创建自己的进度条解决了这个问题,然后通过操作内容 View 的 getTop() 来对齐它。

所以首先创建你的进度条。

final LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, 20); //Use dp resources


mLoadingProgressBar = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
mLoadingProgressBar.setIndeterminate(true);
mLoadingProgressBar.setLayoutParams(lp);

将其添加到窗口(装饰 View )

final ViewGroup decor = (ViewGroup) getWindow().getDecorView();
decor.addView(mLoadingProgressBar);

为了让它到达正确的位置,我使用了一个 ViewTreeObserver 来监听直到 View 被布置好(也就是 View.getTop() 不是 0)。

final ViewTreeObserver vto = decor.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

final View content = getView(android.R.id.content);

@Override
public void onGlobalLayout() {
int top = content.getTop();

//Dont do anything until getTop has a value above 0.
if (top == 0)
return;

//I use ActionBar Overlay in some Activities,
//in those cases it's size has to be accounted for
//Otherwise the progressbar will show up at the top of it
//rather than under.

if (getSherlock().hasFeature((int) Window.FEATURE_ACTION_BAR_OVERLAY)) {
top += getSupportActionBar().getHeight();
}

//Remove the listener, we dont need it anymore.
Utils.removeOnGlobalLayoutListener(decor, this);

//View.setY() if you're using API 11+,
//I use NineOldAndroids to support older
ViewHelper.setY(mLoadingProgressBar, top);
}
});

希望这对您有意义。祝你好运!

关于android - 使用 AppCompat 的 ActionBar 下方的不确定水平 ProgressBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com