以编程方式更新水平进度条宽度(在水平滚动视图中)

问题描述 投票:0回答:1

我在滚动视图中有一个进度条,我想以编程方式修改宽度,但看起来这是不可能的,在 xml 中我只有这样的进度条:

<HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal" />
</HorizontalScrollView>

代码也很简单:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressbar);
progressBar.setMinimumWidth(3000);
progressBar.invalidate();   // tried called invalidate although setMinimumWidth called requestLayout, not help

我还尝试设置布局宽度,如下所示:

progressBar.getLayoutParams().width = 3000;
progressBar.invalidate();

但发现它仅适用于进度条,不适用于滚动视图......

如何更新进度条宽度(在水平滚动视图中)?为什么滚动视图会缺陷进度条宽度?

android android-progressbar horizontalscrollview
1个回答
3
投票

您没有以正确的方式设置参数。试试这个:

HorizontalScrollView.LayoutParams params = (HorizontalScrollView.LayoutParams) progressBar.getLayoutParams();
params.width = 3000;
progressBar.setLayoutParams(params);
© www.soinside.com 2019 - 2024. All rights reserved.