Refresher
Pyyhkäisy-päivitys on yleinen malli mobiili- ja kosketusystävällisissä käyttöliittymissä, ja Refresher-komponentti tuo sen vieritettävien säiliöiden käyttöön webforJ:ssä. Kun käyttäjät pyyhkäisevät alaspäin määritellyn kynnyksen yli, se siirtyy visuaalisten tilojen läpi: pull, release ja refreshing, joista jokaisella on mukautettavissa oleva kuvake ja lokalisoitu teksti. Se toimii hyvin yhdessä InfiniteScroll -komponentin kanssa, joka mahdollistaa sisällön lataamisen tai nollaamisen kosketusperusteisen syötteen avulla.
Instansointi ja kansainvälisyys
Lisää Refresher instansointamalla se ja rekisteröimällä päivityksen kuuntelija. Kun päivitystoiminnot on suoritettu, kutsu finish(), jotta komponentti palautuu lepotilaan.
RefresherAktivoidaksesi Refresher, napsauta ja vedä alaspäin vieritettävän alueen yläosasta. Vaikka tämä ele on tuttu mobiililaitteissa, se ei ole yhtä yleinen työpöydällä — varmista, että pidät ja vedät hiirellä.
Näytä koodi
- RefresherView.java
- refresher.css
Tätä lähestymistapaa käytetään yleisesti sivutettujen luetteloiden päivittämiseen tai äärettömän vierittämisen lataamisen uudelleenkäynnistämiseen.
Kansainvälisyys
Jokaisen tilan etiketti voidaan myös lokalisoida käyttämällä RefresherI18n-objektia. Kolme tilaa ovat:
- Pull: Alkuperäinen eleteksti (esim. "Pyyhkäise alaspäin päivittääksesi")
- Release: Kynnys saavutettu (esim. "Vapauta päivittääksesi")
- Refresh: Lataustila (esim. "Päivitän")
Tämä mahdollistaa monikielisen tuen ja brändäysmuutokset tarpeen mukaan.
Näytä koodi
- RefresherI18nView.java
- refresher.css
Kuvake mukauttaminen
Voit vaihtaa Icons-kuvakkeita, joita käytetään pull/release ja refreshing vaiheissa käyttäen joko ennalta määritettyä Icon -kuvaketta tai kuvaketta URL. Nämä ovat hyödyllisiä, kun haluat soveltaa brändäystä tai mukautettua animaatiota.
Näytä koodi
- RefresherIconView.java
- refresher.css
Vetokäyttäytymisen määrittäminen
Kynnys
Aseta, kuinka pitkälle käyttäjän on vedettävä alaspäin (pikseleinä) ennen päivityksen laukaamista:
refresher.setThreshold(80); // oletusarvo: 80px
Kynnysmaksimi
Määrittääksesi sallitun maksimi vetomatkan, käytä setThresholdMax()-metodia:
refresher.setThresholdMax(160);
Nämä kynnykset hallitsevat eleen herkkyyttä ja vastuskaavaa.
Tilanhallinta
Refresher-komponentti ylläpitää omaa sisäistä tilaansa ja kommunikoi tilamuutokset tapahtumien kautta. Kun käyttäjä vetää alaspäin määritellyn kynnyksen yli, Refresher lähettää päivitystapahtuman, johon voit reagoida rekisteröimällä onRefresh() -kuuntelijan.
Tässä kuuntelijassa odotetaan, että suoritat tarvittavan toiminnan — kuten uuden datan hakemisen tai luettelon nollaamisen — ja kutsut sitten eksplisiittisesti:
refresher.finish();
finish()Jos unohdat kutsua finish(), refresher pysyy lataustilassa ikuisesti.
Voit myös ohjelmallisesti estää Refresher-toiminnon milloin tahansa estääksesi käyttäjää laukaiselemasta päivitys käyttäytymistä:
refresher.setEnabled(false);
Tämä on hyödyllistä, kun päivitykset tulisi ajaksi estää — esimerkiksi latausnäytön aikana tai kun jokin muu kriittinen prosessi on käynnissä.
Tyylittely
Teemat
Refresher-komponentti tukee useita teemoja, jotta erilaiset tilat voidaan visuaalisesti erottaa tai sovittaa sovelluksesi ulkoasuun. Teemoja voidaan käyttää setTheme() -metodin avulla.
Seuraava esimerkki kierrättää kaikkia käytettävissä olevia teemoja jokaisella pyyhkäisyllä, jolloin saat elävän esikatselun siitä, miltä Refresher näyttää eri teemoissa:
Näytä koodi
- RefresherThemesView.java
- refresher.css