Я создаю пользовательский интерфейс из кода и могу успешно добавлять виджеты ProgressBar, однако я не могу изменить размеры виджета на нужные мне значения, он всегда остается с размером по умолчанию (около 50 dp). Я пробовал следующий код:
ProgressBar progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleHorizontal);
progressBar.setMinimumHeight(20);
progressBar.setMinimumWidth(100);
Я также пробовал установить progressBar LayoutParams, но опять ничего, и я попытался обернуть виджет в другой макет, но все равно не повезло.
Кто-нибудь может помочь, как я могу не вижу, как это сделать? Если есть решение, использующее XML, оно могло бы работать, но я должен установить размер и местоположение во время выполнения.
Для Progress 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();