ProgressBar in un AppWidget
-
19-09-2019 - |
Domanda
Mi sono imbattuto in una situazione interessante con l'utilizzo di un ProgressBar in un App Widget ... La documentazione ( http://developer.android.com/guide/topics/appwidgets/index.html ) dice che ProgressBar è una classe widget di supportata ...
Non ho nessun problema a trovare il ProgressBar per visualizzare nella mia app Widget, ma il problema è che io voglio che sia visualizzato solo come feedback visivo all'utente quando l'elaborazione in background sta accadendo.
L'ImageViews faccio questo via RemoteViews.setViewVisibility () e tutto funziona bene. Tuttavia, con ProgressBar ottengo un'eccezione dicendo che ProgressBar non può utilizzare questo metodo.
E 'questo intenzionale o si tratta di un bug? C'è un modo per risolvere questo problema?
Soluzione
Un'idea ancora più semplice, è quello di mettere la barra di avanzamento all'interno di alcuni contenitori (ad esempio un layout lineare) e mostra / nasconde il contenitore.
Altri suggerimenti
Potrebbe essere un bug. C'è una particolare annotazione (@RemotableViewMethod
) è necessario nel codice sorgente Java di Android per sé per contrassegnare un metodo come disponibile tramite RemoteViews
. View
ha questo per setVisibility()
, ma ProgressBar
sovrascrive questo metodo e non ha l'annotazione sulla propria edizione. Se @RemotableViewMethod
non è ereditaria, e l'override "annulla" l'annotazione, questo spiegherebbe il sintomo che si vede.
Una soluzione è quella di utilizzare due layout app widget e scegliere quello che volete (con o senza ProgressBar
) quando si crea l'oggetto RemoteViews
quando si aggiorna il tuo widget app.
Farò una nota per cercare di replicare questo e, se vedo la stessa cosa, vi posterò un problema su di esso sul Android issue tracker .