以编程方式更新水平进度条宽度(在水平滚动视图中)
Update Horizontal Progress Bar width programmatically (In horizontal scrollview)
我在滚动视图中有一个进度条,我想以编程方式修改宽度,但看起来不可能,在 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();
但发现它只适用于不在滚动视图中的进度条...
知道如何更新进度条宽度(在水平滚动视图中)吗?为什么滚动视图会影响进度条的宽度?
谢谢!
您没有以正确的方式设置参数。试试这个:
HorizontalScrollView.LayoutParams params = (HorizontalScrollView.LayoutParams) progressBar.getLayoutParams();
params.width = 3000;
progressBar.setLayoutParams(params);
我在滚动视图中有一个进度条,我想以编程方式修改宽度,但看起来不可能,在 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();
但发现它只适用于不在滚动视图中的进度条...
知道如何更新进度条宽度(在水平滚动视图中)吗?为什么滚动视图会影响进度条的宽度? 谢谢!
您没有以正确的方式设置参数。试试这个:
HorizontalScrollView.LayoutParams params = (HorizontalScrollView.LayoutParams) progressBar.getLayoutParams();
params.width = 3000;
progressBar.setLayoutParams(params);