MotionHighlight
Faner, segmenterte kontroller eller navigasjon fra data, med én markering som flytter til utvalget.
WebReact NativeUtvalg og sider
Prøv det
Forbereder eksempelet …
Korteste bruk
<MotionHighlight
items={['Overview', 'Activity', 'Settings']}
value={tab}
onValueChange={setTab}
hover
/>;Dette tar den seg av
- Én markering flytter og endrer størrelse mellom elementer; stil den med
highlightClassName. - Elementer kommer fra
items, nøkler fragetKeyog etiketter frarenderItem. hoverfår den til å følge pekeren og gå tilbake til utvalget.- Elementer kan brytes over flere rader, og markeringen følger dem.
- Innlasting av skrifttyper og layoutendringer måles automatisk på nytt.
Bruk den til
- Sidefaner.
- En filterlinje.
- En segmentert kontroll i et innstillingsskjema.
Props
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
items | readonly T[] | —påkrevd | Data-arrayen din. |
value | key | null | —påkrevd | Nøkkelen for det markerte elementet; null skjuler markeringen. |
onValueChange | (key, item) => void | Kjører med nøkkelen og elementet når et element trykkes. | |
getKey | (item) => string | number | item.id | Returnerer en unik, stabil nøkkel for et element. Standard er item.id, eller selve elementet for strenger og tall. |
renderItem | (item, { selected, index }) => ReactNode | item.label | Tegner et element; får vite om det er valgt. |
hover | boolean | false | Følg pekeren over elementer og gå tilbake til value når den forlater (web). |
itemAs | element | 'button' | Elementet for hvert punkt. |
itemClassName | string | Klasse for hvert punkts element; itemStyle setter inline-stilen. | |
highlightClassName | string | Klasse for markeringen; highlightStyle setter inline-stilen. | |
transition | Transition | spring | En timingkurve { duration, easing } eller en fjær { tempo: 'spring', spring }. Fjærer beholder momentet når de avbrytes. |
Andre props går til det renderte elementet, så className, style og hendelseshåndterere fungerer som vanlig.
Web og React Native
Hvert element renderes som standard som button (itemAs endrer det); et trykk kaller onValueChange(key, item).
I React Native er elementene Pressable; posisjonen kjører på native driver og størrelsen på en nøstet visning som styres av JavaScript.
Brukt i disse eksemplene
- InnboksFilterfaner med live-tall, rader som kan sveipes bort, og en liste som lukker hullet.
MotionHighlightMotionListMotionSwipeMotionNumber - BildefeedSveip gjennom bilder, hopp med miniatyrer, åpne et hvilket som helst bilde i fullskjerm og dra opp detaljene.
MotionPagerMotionHighlightMotionZoomMotionSheet