Buduję interfejs użytkownika z kodu i mogę z powodzeniem dodawać widgety ProgressBar, jednak nie mogę zmienić wymiarów widgetu na wartości, których potrzebuję, zawsze pozostaje on w domyślnym rozmiarze (około 50 dp). Próbowałem następujący kod;Zmiana szerokości paska postępu dodanego w czasie wykonywania
ProgressBar progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleHorizontal);
progressBar.setMinimumHeight(20);
progressBar.setMinimumWidth(100);
Próbowałem zostały również ustawienie Progressbar LayoutParams ale znowu nic, a próbowałem owijania widget w innym układzie, ale nadal nie szczęścia.
Czy ktoś może pomóc, bo nie widzę, jak to zrobić? Jeśli istnieje rozwiązanie wykorzystujące XML, może to działać, ale muszę ustawić wymiar i lokalizację w czasie wykonywania.
Dla pliku XML postępu użyłem następujących elementów.
<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"
/>
Następnie kod do nadmuchania jest następujący. To mieszanka tego, o czym dyskutowaliśmy.
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();
Myślę, że rozwiązaniem byłoby skopiowanie kodu źródłowego widgetu i wdrożenie brakujących metod. Wydaje się szalone rozwiązanie, musi być sposób, aby to zrobić. – Snowwire
Aby potwierdzić: szukasz stylów paska, a nie stylu spinnera? Prawdopodobnie wystarczyłoby dowiedzieć się, gdzie zdefiniowano style/kształty, a także skopiować i dostosować je. – sstn