Alle komponenter

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

Tabs.jsx
<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 fra getKey og etiketter fra renderItem.
  • hover få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

PropTypeStandardBeskrivelse
itemsreadonly T[]—påkrævetDit data-array.
valuekey | null—påkrævetNøglen for det markerede element; null skjuler markeringen.
onValueChange(key, item) => voidKører med nøglen og elementet, når et element trykkes.
getKey(item) => string | numberitem.idReturnerer en unik, stabil nøgle for et element. Standard er item.id, eller selve elementet for strenge og tal.
renderItem(item, { selected, index }) => ReactNodeitem.labelTegner et element; får at vide, om det er valgt.
hoverbooleanfalseFølg markøren hen over elementer, og vend tilbage til value, når den forlader (web).
itemAselement'button'Elementet for hvert punkt.
itemClassNamestringKlasse for hvert punkts element; itemStyle sætter dets inline-style.
highlightClassNamestringKlasse til markeringen; highlightStyle sætter dens inline-style.
transitionTransitionspringEn 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.

Brugt i disse eksempler

Søg

Skriv for at søge i dokumentationen.