2014-10-10 11 views
7

Mam styl ProgressBar w pliku style.xml. Kiedy tworzę układ, umieścić tam ProgressBar i ustawić styl, takich jak:Jak programowo ustawić styl na pasku postępu na Androidzie

style="@style/ProgressBarStyle" 

ustawioną układ do dialogu i wszystko jest w porządku.

Inny sposób tworzenia widoku dla okna dialogowego programowo. Więc dla ProgressBar mam następny kod:

new ProgressBar(context, null, R.style.ProgressBarStyle); 

Ale w ten sposób nie ma nic zamiast ProgressBar.

P.S. Nie zapomnę dodać ProgressBar do widoku, który ustawiam jako widok okna dialogowego.

+0

Twój problem polega na tym, że Twój styl niestandardowy nie jest stosowany na pasku postępu? – tritop

+0

nie jest programowo programowany – McBodik

Odpowiedz

8

Można ustawić swój styl z konstruktora, na przykład:

progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall); 

Gdzie trzeci atrybut jest styl.

W twoim przypadku, myślę, że błąd polega na wybraniu niewłaściwego. Tylko to.

+0

Jak już napisałem, wiem o trzecim atrybucie. Jeśli wybrałem niewłaściwy, dlaczego w xml ten zły działa poprawnie? – McBodik

+0

Czy to działa? Nie jestem do końca pewien, ale powiedziałbym, że są one odniesieniami do różnych rzeczy i że R.style.ProgressBarStyle jest nadpisany przez własny styl (w folderze stylów) lub nawet domyślny styl Androida ustawiony dla aktywności –

+2

ok, może nie wyraziłem się wyraźnie. Mam swój własny styl o nazwie ProgressBarStyle. w R.style i @style mogę go znaleźć. W języku xml wszystko w porządku (styl zastosowany do paska postępu). Ale programowo coś nie tak, pasek postępu nie jest wyświetlany – McBodik

0

Wiem, że to późna odpowiedź, ale znalazłem rozwiązanie dla siebie.

Aby utworzyć pasek postępu z zasobem stylu, można to zrobić, tworząc plik układu dla paska postępu, który już ustawił styl.

progressbar_default.xml

<?xml version="1.0" encoding="utf-8"?> 
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    style="@style/ProgressDialogStyle.Default"/> 

następnie użyć inflator z działalności, aby utworzyć progressbar.

mProgressBar =(ProgressBar) getLayoutInflater().inflate(R.layout.progessbar_default,null); 
Powiązane problemy