2015-09-15 14 views
7

Realizzare un'app utilizzando ProgressDialog e si presenta bene su JellyBean ma durante il test con Lollipop vedo solo il titolo e il messaggio, nessun avanzamento. Sto usandoNon riesco a vedere lo stato di avanzamento in ProgressDialog su Lollipop

compile 'com.android.support:appcompat-v7:22.2.0' 

biblioteca Supporto e AppCompatActivity

il codice è:

ProgressDialog progressDialog = new ProgressDialog(AddBuddyActivity.this); 
progressDialog.setMessage("Loading..."); 
progressDialog.setCancelable(false); 
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
progressDialog.show(); 

Si può vedere un'altra domanda ho postato sullo stesso argomento here.

+0

aggiungere il codice per lei progressi finestra a guardare – Tasos

+0

si può aggiungere il tema per questa attività che viene utilizzato in manifesta? – Shishram

+0

@Shishram, il tema è Theme.AppCompat.Light.DarkActionBar per tutti i miei temi – Brandon

risposta

13

NOTA: è possibile visualizzare uno pseudo-duplicato di questa domanda here. Quello nel collegamento è un po 'più approfondito, ma entrambi hanno la stessa soluzione.

La risposta sembra essere che se un utente ha disattivato le transizioni nelle opzioni sviluppatore, le animazioni in una ProgressDialog (vale a dire il Progress Spinner) non verranno visualizzate. Accendili e riavvia l'app e vedrai lo spinner!

Una soluzione che permetterebbe di animazioni con queste impostazioni spento sembra essere quello di fare una finestra di dialogo personalizzato, che devo ammettere che probabilmente un aspetto migliore di quello predefinito ProgressDialog.

E, come una fiera avvertimento per le persone che tentano di abusare del ProgressDialog, ascoltare queste parole da parte dello sviluppatore documentation:

Android include un'altra classe finestra denominata ProgressDialog che mostra una finestra con una barra di avanzamento. Tuttavia, se è necessario indicare il carico o di avanzamento indeterminata, si dovrebbe invece seguire le linee guida di progettazione per Progress & Activity e utilizzare un ProgressBar nel layout.

Da questo, prendo il fatto che usarli per le chiamate lunghe sulla rete sono OK, mentre il caricamento delle informazioni o un lungo processo locale dovrebbero essere indicati usando uno degli altri componenti di progresso.

+1

La sua vera, manomissione dell'opzione sviluppatore può nascondere ProgressBar. Ho attivato le opzioni di sviluppo e progressdialog è diventato visibile. –

2

Sto usando questo in Lollipop. Fammi sapere se funziona per te. La libreria di supporto che sto usando è android-supporto-v4.jar

import android.app.ProgressDialog; 

ProgressDialog dialog = ProgressDialog.show(this, "Title", "Message ", true, true);//Put this where you need it 

Questo sta lavorando bene per me su: Droid Razor M con 4.4.2 Samsung Note 4 con 5.0.1 Samsung Galaxy 6 Edge con 5.1.1

+0

No, non funziona su Marshmallow (6.0) –

Problemi correlati