Refresher
El componente Refresher en webforJ habilita una interacción de arrastre para refrescar dentro de contenedores desplazables, ideal para la carga de datos dinámicos en interfaces móviles o amigables al toque. A medida que los usuarios deslizan hacia abajo más allá de un umbral configurable, el refresher transiciona a través de estados visuales: pull, release y refreshing. Cada estado presenta un ícono personalizable y texto localizado para comunicar claramente la retroalimentación.
Puedes usar Refresher junto con componentes como InfiniteScroll para recargar contenido o restablecer el estado a través de una entrada basada en gestos simple. El componente es completamente configurable en términos de comportamiento de interacción, apariencia, localización e integración con el resto de tu interfaz de usuario.
Instanciación e internacionalización
Agrega un Refresher instanciándolo y registrando un oyente de refresco. Cuando las operaciones de refresco se completan, llama a finish() para restablecer el componente a su estado inactivo.
RefresherPara activar el Refresher, haz clic y arrastra hacia abajo desde la parte superior del área desplazable. Mientras que este gesto es familiar en móviles, es menos común en computadoras de escritorio; asegúrate de mantener y arrastrar con tu ratón.
Mostrar Código
- Java
- CSS
Este enfoque se utiliza comúnmente para refrescar listas paginadas o reiniciar la carga de desplazamiento infinito.
Internacionalización
Cada etiqueta de estado también se puede localizar utilizando el objeto RefresherI18n. Los tres estados son:
- Pull: Texto del gesto inicial (por ejemplo, "Desliza hacia abajo para refrescar")
- Release: Umbral de activación alcanzado (por ejemplo, "Suelta para refrescar")
- Refresh: Estado de carga (por ejemplo, "Refrescando")
Esto permite soporte multilingüe y ajustes de marca según sea necesario.
Mostrar Código
- Java
- CSS
Personalización de íconos
Puedes cambiar los Icons utilizados para los estados de pull/release y refreshing utilizando ya sea un Icon predefinido o una URL de Icono. Estos son útiles cuando deseas aplicar una marca o una animación personalizada.
Mostrar Código
- Java
- CSS
Configuración del comportamiento de arrastre
Umbral
Establece cuán lejos debe arrastrar el usuario hacia abajo (en píxeles) antes de activar el refresco:
refresher.setThreshold(80); // predeterminado: 80px
Máximo del umbral
Para definir la distancia máxima de arrastre permitida, utiliza el método setThresholdMax():
refresher.setThresholdMax(160);
Estos umbrales controlan la sensibilidad del gesto y la curva de resistencia.
Gestión del estado
El componente Refresher mantiene su propio estado interno y comunica los cambios de estado a través de eventos. Cuando un usuario arrastra hacia abajo más allá del umbral definido, el Refresher emite un evento de refresco al que puedes responder registrando un oyente onRefresh().
Dentro de este oyente, se espera que realices la operación necesaria, como obtener nuevos datos o restablecer una lista, y luego llamar explícitamente a:
refresher.finish();
finish()Si olvidas llamar a finish(), el refresher permanecerá en el estado de carga indefinidamente.
También puedes desactivar programáticamente el Refresher en cualquier momento para evitar que el usuario active el comportamiento de refresco:
refresher.setEnabled(false);
Esto es útil cuando los refrescos deben ser deshabilitados temporalmente, por ejemplo, durante una pantalla de carga o mientras se ejecuta otro proceso crítico.
Estilo
Temas
El componente Refresher soporta múltiples temas para distinguir visualmente diferentes estados o para coincidir con la apariencia de tu aplicación. Los temas se pueden aplicar utilizando el método setTheme().
El siguiente ejemplo recorre todos los temas disponibles cada vez que arrastras para refrescar, dándote una vista previa en vivo de cómo se ve el Refresher a través de diferentes temas:
Mostrar Código
- Java
- CSS