studio progressbar progreso llenar espera dialogo como cargando carga barra animacion android firebase firebase-database firebase-realtime-database firebaseui

progressbar - progress circle android studio



¿Cómo descartar una barra de progreso incluso si no hay una vista para completar en FirebaseListAdapter? (1)

Actualización : los adaptadores FirebaseUI hoy en día tienen un método onDataChanged() que puede anular para detectar cuándo terminaron de cargar un conjunto de datos.

Ver el código fuente en github . Desde allí:

Este método se activará cada vez que las actualizaciones de la base de datos se hayan procesado por completo. Entonces, la primera vez que se llama a este método, los datos iniciales se han cargado, incluido el caso en que no hay datos disponibles. Cada vez que se llama al método, se ha completado una actualización completa (que puede consistir en actualizaciones de varios elementos secundarios).

Por lo general, anularía este método para ocultar un indicador de carga (después de la carga inicial) o para completar una actualización por lotes de un elemento de la interfaz de usuario.

La aplicación de ejemplo FirebaseUI anula onDataChanged() para ocultar su indicador de "carga":

public void onDataChanged() { // If there are no chat messages, show a view that invites the user to add a message. mEmptyListMessage.setVisibility(getItemCount() == 0 ? View.VISIBLE : View.GONE); }

Respuesta original

Los adaptadores de la lista FirebaseUI usan internamente un Firebase ChildEventListener . Este oyente solo dispara por eventos secundarios relevantes. Si no hay niños, no se disparará ningún evento.

Puede detectar esta situación adjuntando un escucha de valor adicional a la referencia / consulta que pasa al adaptador.

DatabaseReference list = mDatabase.child("messages"); showSpinner(); mAdapter = new FirebaseListAdapter<Message>(......, list) { void populateView(View view, Message message, int position) { // the first message was loaded hideSpinner(); } }); list.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { // the initial data is loaded (even if there was none) hideSpinner(); } @Override public void onCancelled(DatabaseError databaseError) { Log.w(TAG, "onCancelled", databaseError.toException()); } });

Yo uso FirebaseUI FirebaseListAdapter. Se tarda un poco en cargar los datos y quiero mostrar un círculo giratorio. Puedo descartar la barra de progreso estableciendo la visibilidad de la vista en invisible en populateView, pero no funciona si no hay una vista para rellenar. ¿Cómo manejar esto?