ProgressDialog Android con setContentView
-
08-10-2019 - |
Domanda
Ho letto un inferno di molto di questo, e non riesco a vedere chi ha fatto o provato prima.
Così ho un oggetto che si estende ImageView, allora in questo io chiamo una finestra di avanzamento e impostare il contenuto del finestre di dialogo di avanzamento al ImageView (vale a dire il tentativo di disegnare la finestra di avanzamento nel imageview..view.)
loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView
loadingProgressDialog.setIndeterminate(true);
loadingProgressDialog.show();
E ottengo l'errore: requestFeature () deve essere chiamata prima di aggiungere contenuti
Ora ho visto questo errore prima su carichi di messaggi e sì, la risposta sembra ovvia. Ho cercato di impostare tutte le caratteristiche:
loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
Ma prima non capisco il motivo per cui ho bisogno di questo? E in secondo luogo nessuno di loro lavoro comunque!
Quindi la domanda è posso impostare la ProgressDialog contentView a un ImageView? Se è così che cosa ho ottenuto sbagliato?
Soluzione 3
ottenuto.
L'indizio era nei nomi di classe, non utilizzare ProgressDialog ( http: //developer.android.com/reference/android/app/ProgressDialog.html ) quando non è necessario un dialogo!
Ho cambiato la mia implementazione dell'uso: ProgressBar ( http://developer.android .com / riferimento / android / widget di / ProgressBar.html ) e funziona benissimo.
Applausi per l'orecchio comunque!
Questo è il motivo per cui stavo cercando per:
http: //www.anddev. org / inesperti-tutorial-F8 / imageview-con-carico-filatore-t49439.html
Tutorial mostra come si può avere uno Spinner mentre un'immagine è carico. Godetevi
Altri suggerimenti
ho fatta; in realtà, è molto semplice; utilizzando
loadingProgressDialog.setContentView(this)
Dopo
loadingProgressDialog.show()
Le seguenti righe di codice sono inutili:
loadingProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
loadingProgressDialog.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_PROGRESS);
loadingProgressDialog.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
Vale a dire:
loadingProgressDialog.setIndeterminate(true);
loadingProgressDialog.show();
loadingProgressDialog.setContentView(this); //this is: LoaderImageView extends ImageView
che è abbastanza.
Spero che questo possa aiutare altre persone in cerca di risposta a questa domanda.
Se andate a leggere il doc sviluppatore progressDialog si dice "una finestra di dialogo che mostra un indicatore di avanzamento e un messaggio di testo opzionale o vista. Solo un messaggio di testo o di una vista può essere utilizzato allo stesso tempo".
Sembra che si sta tentando di fare entrambe le cose. Forse la causa del problema.