MotionHighlight
Karty, segmentové přepínače nebo navigace z dat, s jedním zvýrazněním, které putuje k výběru.
WebReact NativeVýběr a stránky
Vyzkoušejte
Příprava příkladu…
Nejkratší použití
<MotionHighlight
items={['Overview', 'Activity', 'Settings']}
value={tab}
onValueChange={setTab}
hover
/>;Co za vás vyřeší
- Jedno zvýraznění se přesouvá a mění velikost mezi položkami; stylujte ho přes
highlightClassName. - Položky pocházejí z
items, klíče zgetKeya popisky zrenderItem. hoverho nechá sledovat ukazatel a vracet se k výběru.- Položky se mohou zalamovat do více řádků a zvýraznění je sleduje.
- Načtení písem a změny rozvržení se změří znovu automaticky.
Použijte pro
- Karty stránky.
- Lišta filtrů.
- Segmentový přepínač ve formuláři nastavení.
Props
| Prop | Typ | Výchozí | Popis |
|---|---|---|---|
items | readonly T[] | —povinné | Vaše pole dat. |
value | key | null | —povinné | Klíč zvýrazněné položky; null zvýraznění skryje. |
onValueChange | (key, item) => void | Spustí se s klíčem a položkou při stisku položky. | |
getKey | (item) => string | number | item.id | Vrací jedinečný stabilní klíč položky. Ve výchozím stavu item.id, u řetězců a čísel samotnou položku. |
renderItem | (item, { selected, index }) => ReactNode | item.label | Vykreslí položku; dostane informaci, zda je vybraná. |
hover | boolean | false | Sledovat ukazatel nad položkami a po odchodu se vrátit na value (web). |
itemAs | element | 'button' | Prvek pro každou položku. |
itemClassName | string | Třída pro prvek každé položky; itemStyle nastaví jeho inline styl. | |
highlightClassName | string | Třída pro zvýraznění; highlightStyle nastaví jeho inline styl. | |
transition | Transition | spring | Křivka timing { duration, easing } nebo pružina { tempo: 'spring', spring }. Pružiny si při přerušení zachovávají hybnost. |
Ostatní props jdou do renderovaného prvku, takže className, style a obsluhy událostí fungují jako obvykle.
Web a React Native
Každá položka se ve výchozím stavu renderuje jako button (itemAs to změní); stisk zavolá onValueChange(key, item).
V React Native jsou položky Pressable; poloha běží na nativním driveru a velikost na vnořeném view řízeném JavaScriptem.
Použito v těchto příkladech
- Doručená poštaKarty filtrů s živými počty, řádky, které lze odsunout přejetím, a seznam, který zacelí mezeru.
MotionHighlightMotionListMotionSwipeMotionNumber - Feed fotekListujte fotkami přejetím, přeskakujte náhledy, otevřete libovolnou fotku na celou obrazovku a vytáhněte její podrobnosti.
MotionPagerMotionHighlightMotionZoomMotionSheet