2014-10-10 10 views
7

Ho lo stile ProgressBar in style.xml. Quando creo il layout, messo lì ProgressBar e impostare stile come:Come impostare lo stile su ProgressBar a livello di codice su Android

style="@style/ProgressBarStyle" 

disposizione insieme al dialogo e tutto va bene.

Altro modo creare la visualizzazione per la finestra di dialogo a livello di programmazione. Così per ProgressBar Ho codice seguente:

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

Ma in questo modo non c'è nulla, invece ProgressBar.

P.S. Non dimentico di aggiungere ProgressBar per vedere quale ho impostato come finestra di dialogo.

+0

Quindi il tuo problema è che il tuo stile personalizzato non è applicato sulla barra di avanzamento? – tritop

+0

non viene applicato a livello di programmazione – McBodik

risposta

8

È possibile impostare il vostro stile dal costruttore, per esempio:

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

Qualora il terzo attributo è lo stile.

Nel tuo caso, penso che l'errore sia quello di scegliere quello sbagliato. Solo questo.

+0

Come ho già scritto, conosco il terzo attributo. Se ho scelto uno sbagliato, perché in xml questo ha funzionato correttamente? – McBodik

+0

Funziona per voi? Non ne sono del tutto sicuro, ma direi che sono riferimenti a cose diverse e che R.style.ProgressBarStyle ha la precedenza sul tuo stile (nella cartella styles) o anche sullo stile Android predefinito che hai impostato sull'attività –

+2

ok, forse ho espresso non chiaramente. Ho il mio stile chiamato ProgressBarStyle. in R.style e @style posso trovarlo. In xml va bene (lo stile è applicato alla barra di avanzamento). Ma programmaticamente qualcosa non va, nessuna barra di avanzamento non viene mostrata – McBodik

0

So che questa è una risposta tardiva, ma ho trovato una soluzione da solo.

Per creare una barra di avanzamento con una risorsa di stile, è possibile farlo creando un file di layout per la barra di avanzamento che ha già impostato lo stile.

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"/> 

poi si utilizza il gonfiaggio dall'attività per creare il ProgressBar.

mProgressBar =(ProgressBar) getLayoutInflater().inflate(R.layout.progessbar_default,null); 
Problemi correlati