Refresher
Pull-to-refresh ist ein gängiges Muster in mobilen und berührungsfreundlichen Schnittstellen, und die Refresher-Komponente bringt es zu scrollbaren Containern in webforJ. Wenn Benutzer nach unten wischen, überschreiten sie einen konfigurierbaren Schwellenwert und wechseln durch visuelle Zustände: pull, release und refreshing, jeweils mit einem anpassbaren Symbol und lokalisiertem Text. Es passt gut zu InfiniteScroll zum Neuladen oder Zurücksetzen von Inhalten durch gestenbasierte Eingabe.
Instanziierung und Internationalisierung
Fügen Sie einen Refresher hinzu, indem Sie ihn instanziieren und einen Aktualisierungslistener registrieren. Wenn die Aktualisierung abgeschlossen ist, rufen Sie finish() auf, um die Komponente in ihren Ruhemodus zurückzusetzen.
RefresherUm den Refresher zu aktivieren, klicken und ziehen Sie nach unten von der Oberkante des scrollbaren Bereichs. Während diese Geste auf mobilen Geräten vertraut ist, ist sie auf dem Desktop weniger gebräuchlich - stellen Sie sicher, dass Sie mit der Maus halten und ziehen.
Code anzeigen
- RefresherView.java
- refresher.css
Dieser Ansatz wird häufig verwendet, um paginierte Listen zu aktualisieren oder das Laden von unendlichem Scrollen neu zu starten.
Internationalisierung
Jedes Zustandsetikett kann auch mithilfe des RefresherI18n-Objekts lokalisiert werden. Die drei Zustände sind:
- Pull: Text der anfänglichen Geste (z. B. "Nach unten ziehen, um zu aktualisieren")
- Release: Auslöschschwelle erreicht (z. B. "Loslassen, um zu aktualisieren")
- Refresh: Ladezustand (z. B. "Wird aktualisiert")
Dies ermöglicht mehrsprachige Unterstützung und Anpassungen der Markenbildung nach Bedarf.
Code anzeigen
- RefresherI18nView.java
- refresher.css
Symbolanpassung
Sie können die verwendeten Icons für die pull/release und refreshing Phasen ändern, indem Sie entweder ein vordefiniertes Icon oder eine Icon-URL verwenden. Diese sind nützlich, wenn Sie Branding oder eine benutzerdefinierte Animation anwenden möchten.
Code anzeigen
- RefresherIconView.java
- refresher.css
Pull-Verhalten-Konfiguration
Schwellenwert
Legen Sie fest, wie weit der Benutzer nach unten ziehen muss (in Pixeln), bevor die Aktualisierung ausgelöst wird:
refresher.setThreshold(80); // Standard: 80px
Maximale Schwelle
Um die maximale Ziehdistanz zu definieren, verwenden Sie die Methode setThresholdMax():
refresher.setThresholdMax(160);
Diese Schwellenwerte steuern die Gestensensibilität und die Widerstandskurve.
Zustandsverwaltung
Die Refresher-Komponente verwaltet ihren eigenen internen Zustand und kommuniziert Zustandsänderungen über Ereignisse. Wenn ein Benutzer nach unten zieht, überschreitet er den definierten Schwellenwert, und der Refresher gibt ein Aktualisierungsereignis aus, auf das Sie reagieren können, indem Sie einen onRefresh()-Listener registrieren.
Innerhalb diesesListeners wird erwartet, dass Sie die erforderliche Operation ausführen - z. B. neue Daten abrufen oder eine Liste zurücksetzen - und dann explizit aufrufen:
refresher.finish();
finish()Wenn Sie vergessen, finish() aufzurufen, bleibt der Refresher im Ladezustand, bis Sie ihn zurücksetzen.
Sie können den Refresher auch programmgesteuert deaktivieren, um zu verhindern, dass der Benutzer das Rückführungsverhalten auslöst:
refresher.setEnabled(false);
Dies ist nützlich, wenn Aktualisierungen vorübergehend untersagt werden sollen - zum Beispiel während eines Ladebildschirms oder während ein anderer kritischer Prozess ausgeführt wird.
Styling
Themen
Die Refresher-Komponente unterstützt mehrere Themen, um verschiedene Zustände visuell zu unterscheiden oder an das Aussehen und Gefühl Ihrer App anzupassen. Themen können mit der Methode setTheme() angewendet werden.
Das folgende Beispiel wechselt durch alle verfügbaren Themen, jedes Mal, wenn Sie ziehen, um zu aktualisieren, und gibt Ihnen eine Live-Vorschau, wie die Refresher-Komponente über verschiedene Themen aussieht:
Code anzeigen
- RefresherThemesView.java
- refresher.css