2011-10-23 12 views
8

Sto cercando di chiamare setProgressDrawable su un ProgressBar nel mio RemoteViews
Tuttavia non sembra essere un metodo setDrawable(<view_id>,<method>,<value>) su RemoveViews Ho provato setBitmap ma setProgressDrawable prende un non Drawable un Bitmap e setInt non funziona neanche.c'è modo di setProgressDrawable su RemoteViews

Volevo evitare di caricare diversi file xml di layout widget solo per gestire barre di avanzamento colore diverse.

+0

Sono d'accordo. Sembra che l'SDK consenta di istanziare un puntatore a ProgressBar usando LayoutInflator, ma non sembra che si verifichi alcuna azione. Né setProgressDrawable(), né bringToFront(), né il famigerato setProgress-and-setMax-due volte soluzione alternativa fanno alcuna differenza se il ProgressBar è un componente AppWidget. Agisce come se ci fosse una disconnessione tra l'XML del layout e il puntatore dell'oggetto nel codice. –

+0

@HunterDmeno se non è solo io, il problema esiste ancora su ICS :( – Rob

risposta

1

Non c'è modo di farlo. La mia soluzione non era quella di creare file di layout separati, ma uno che contenga tutti i diversi ProgressBar con diversi progressiDrawables. Nel codice devi quindi renderne visibile solo una.

Si prega di notare che per le versioni precedenti di Android non è consentito chiamare setViewVisibility sul Progressbar direttamente. Il trucco è quello di avvolgere un semplice LinearLayout attorno a ogni barra e rendere invece questo wrapper invisibile/visibile. Funziona bene per me.

Problemi correlati