我正在从代码中构建UI,可以成功地添加ProgressBar小部件,但是我无法将小部件的尺寸更改为我需要的值,它始终保持默认大小(约50dp)。我已经尝试了以下代码;
ProgressBar progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleHorizontal);
progressBar.setMinimumHeight(20);
progressBar.setMinimumWidth(100);
我也尝试过设置progressBar的LayoutParams,但仍然没有效果。我还尝试将小部件包装在另一个布局中,但仍然没有成功。
有人可以帮忙吗?我看不出该怎么做。如果有使用XML的解决方案,那么它可能有效,但我必须在运行时设置尺寸和位置。
对于进度条的XML,我使用了以下代码。
<ProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="10dp"
android:indeterminateOnly="false"
android:progressDrawable="@android:drawable/progress_horizontal"
android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
android:maxWidth="1000dp"
/>
然后,解压它的代码如下。这是我们讨论的内容的混合体。
LayoutInflater layoutInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ProgressBar progressBar = (ProgressBar)layoutInflater.inflate(R.layout.progress_bar, null);
progressBar.setMinimumHeight(10);
progressBar.setMinimumWidth(200);
progressBar.setLayoutParams(new RelativeLayout.LayoutParams(200, 10);
progressBar.setMax(100);
progressBar.setProgress(getScrollBarValue());
progressBar.setIndeterminate(isIndeterminate());
progressBar.getLayoutParams().width = 200;
progressBar.invalidate();