MotionHighlight
Karty, segmentové prepínače alebo navigácia z údajov, s jedným zvýraznením, ktoré putuje k výberu.
WebReact NativeVýber a stránky
Vyskúšajte
Príprava príkladu…
Najkratšie použitie
<MotionHighlight
items={['Overview', 'Activity', 'Settings']}
value={tab}
onValueChange={setTab}
hover
/>;Čo za vás vyrieši
- Jedno zvýraznenie sa presúva a mení veľkosť medzi položkami; štýlujte ho cez
highlightClassName. - Položky pochádzajú z
items, kľúče zgetKeya popisky zrenderItem. hoverho nechá sledovať ukazovateľ a vracať sa k výberu.- Položky sa môžu zalamovať do viacerých riadkov a zvýraznenie ich sleduje.
- Načítanie písiem a zmeny rozloženia sa zmerajú znova automaticky.
Použite na
- Karty stránky.
- Lišta filtrov.
- Segmentový prepínač vo formulári nastavení.
Props
| Prop | Typ | Predvolené | Popis |
|---|---|---|---|
items | readonly T[] | —povinné | Vaše pole údajov. |
value | key | null | —povinné | Kľúč zvýraznenej položky; null zvýraznenie skryje. |
onValueChange | (key, item) => void | Spustí sa s kľúčom a položkou pri stlačení položky. | |
getKey | (item) => string | number | item.id | Vracia jedinečný stabilný kľúč položky. Predvolene item.id, pri reťazcoch a číslach samotnú položku. |
renderItem | (item, { selected, index }) => ReactNode | item.label | Vykreslí položku; dostane informáciu, či je vybraná. |
hover | boolean | false | Sledovať ukazovateľ nad položkami a po odchode sa vrátiť na value (web). |
itemAs | element | 'button' | Prvok pre každú položku. |
itemClassName | string | Trieda pre prvok každej položky; itemStyle nastaví jeho inline štýl. | |
highlightClassName | string | Trieda pre zvýraznenie; highlightStyle nastaví jeho inline štýl. | |
transition | Transition | spring | Krivka timing { duration, easing } alebo pružina { tempo: 'spring', spring }. Pružiny si pri prerušení zachovávajú hybnosť. |
Ostatné props idú do renderovaného prvku, takže className, style a obsluhy udalostí fungujú ako obvykle.
Web a React Native
Každá položka sa predvolene renderuje ako button (itemAs to zmení); stlačenie zavolá onValueChange(key, item).
V React Native sú položky Pressable; poloha beží na natívnom driveri a veľkosť na vnorenom view riadenom JavaScriptom.
Použité v týchto príkladoch
- Doručená poštaKarty filtrov so živými počtami, riadky, ktoré možno odsunúť potiahnutím, a zoznam, ktorý zacelí medzeru.
MotionHighlightMotionListMotionSwipeMotionNumber - Feed fotiekListujte fotkami potiahnutím, preskakujte náhľady, otvorte ľubovoľnú fotku na celú obrazovku a vytiahnite jej podrobnosti.
MotionPagerMotionHighlightMotionZoomMotionSheet