MotionHighlight
Faner, segmenterede kontroller eller navigation fra data, med én markering, der flytter til valget.
WebReact NativeValg og sider
Prøv det
Forbereder eksemplet…
Korteste brug
<MotionHighlight
items={['Overview', 'Activity', 'Settings']}
value={tab}
onValueChange={setTab}
hover
/>;Det klarer den for dig
- Én markering flytter og ændrer størrelse mellem elementer; style den med
highlightClassName. - Elementer kommer fra
items, nøgler fragetKeyog etiketter frarenderItem. hoverfår den til at følge markøren og vende tilbage til valget.- Elementer kan ombrydes over flere rækker, og markeringen følger dem.
- Indlæsning af skrifttyper og layoutændringer måles automatisk igen.
Brug den til
- Sidefaner.
- En filterlinje.
- En segmenteret kontrol i en indstillingsformular.
Props
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
items | readonly T[] | —påkrævet | Dit data-array. |
value | key | null | —påkrævet | Nøglen for det markerede element; null skjuler markeringen. |
onValueChange | (key, item) => void | Kører med nøglen og elementet, når et element trykkes. | |
getKey | (item) => string | number | item.id | Returnerer en unik, stabil nøgle for et element. Standard er item.id, eller selve elementet for strenge og tal. |
renderItem | (item, { selected, index }) => ReactNode | item.label | Tegner et element; får at vide, om det er valgt. |
hover | boolean | false | Følg markøren hen over elementer, og vend tilbage til value, når den forlader (web). |
itemAs | element | 'button' | Elementet for hvert punkt. |
itemClassName | string | Klasse for hvert punkts element; itemStyle sætter dets inline-style. | |
highlightClassName | string | Klasse til markeringen; highlightStyle sætter dens inline-style. | |
transition | Transition | spring | En timingkurve { duration, easing } eller en fjeder { tempo: 'spring', spring }. Fjedre bevarer deres momentum, når de afbrydes. |
Andre props går til det renderede element, så className, style og event handlers virker som normalt.
Web og React Native
Hvert element renderes som standard som button (itemAs ændrer det); et tryk kalder onValueChange(key, item).
I React Native er elementerne Pressable; positionen kører på native driver og størrelsen på et indlejret view, der styres af JavaScript.