7

Al cargar datos en mis Fragmentos, me gustaría tener un spinner indeterminado en el medio del fragmento (ejemplo en la imagen a continuación) para mostrar al usuario que el contenido se está cargando dentro de ese panel en particular.Fragmento cargando spinner/dialog en Honeycomb

¿Cuál es la mejor manera de hacer esto en Honeycomb?

Realmente no quiero usar una ruleta en la barra de acciones, no es inmediatamente obvio dónde se están cargando los datos. Además, no quiero un diálogo de progreso indeterminado porque aparece en el centro de toda la aplicación y también evita que el usuario haga otra cosa hasta que se cierre. nótese bien FragmentDialogs parece hacer esto también.

¿Tendré que hackear con un FrameLayout personalizado para obtener el efecto deseado para cada panel?

honeycomb screenshot

Respuesta

18

Si está utilizando un ListFragment puede llamar al setListShown(false) para mostrar un indicador de progreso de carga hasta que llame al setListShown(true). Puede llamarlos en los métodos de devolución de llamada Loader del fragmento para mostrar el indicador mientras se carga la lista.

+0

@ J-Knight hey man Obtengo IllegalStateException ("No se puede usar con una vista de contenido personalizada"); cuando uso setListShown. Lo estoy llamando con falso en ListFragment.onActivityCreated para mostrar el progreso y con verdadero en onStart para mostrar la lista y ocultar el progreso. ¿Cuál es la devolución de llamada del Loader de los fragmentos? – topwik

+0

@towpse Supongo que el error lo dice todo: Esto no funciona con diseños personalizados de ListView. Sin embargo, debería funcionar con la vista de lista estándar. – AgentKnopf

3

Creo que la mejor manera de lograr esto sería utilizar un ViewSwitcher. Luego, si está utilizando un cargador, puede simplemente cambiar entre las vistas (la vista de carga y la vista de contenido) después de que se haya completado la carga.