Alla komponenter

MotionHighlight

Flikar, segmenterade kontroller eller navigation från data, med en markering som flyttar till urvalet.

WebbReact NativeUrval och sidor

Prova

Förbereder exemplet…

Kortaste användning

Tabs.jsx
<MotionHighlight
  items={['Overview', 'Activity', 'Settings']}
  value={tab}
  onValueChange={setTab}
  hover
/>;

Det här sköter den åt dig

  • En markering flyttar och ändrar storlek mellan objekt; styla den med highlightClassName.
  • Objekten kommer från items, nycklarna från getKey och etiketterna från renderItem.
  • hover får den att följa pekaren och återvända till urvalet.
  • Objekten kan radbrytas på flera rader och markeringen följer dem.
  • Inläsning av typsnitt och layoutändringar mäts om automatiskt.

Använd den för

  • Sidflikar.
  • Ett filterfält.
  • En segmenterad kontroll i ett inställningsformulär.

Props

PropTypStandardBeskrivning
itemsreadonly T[]—krävsDin dataarray.
valuekey | null—krävsNyckeln för det markerade objektet; null döljer markeringen.
onValueChange(key, item) => voidKörs med nyckeln och objektet när ett objekt trycks.
getKey(item) => string | numberitem.idReturnerar en unik, stabil nyckel för ett objekt. Standard är item.id, eller själva objektet för strängar och tal.
renderItem(item, { selected, index }) => ReactNodeitem.labelRitar ett objekt; får veta om det är valt.
hoverbooleanfalseFölj pekaren över objekt och återgå till value när den lämnar (webb).
itemAselement'button'Elementet för varje objekt.
itemClassNamestringKlass för varje objektelement; itemStyle sätter dess inline-style.
highlightClassNamestringKlass för markeringen; highlightStyle sätter dess inline-style.
transitionTransitionspringEn timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts.

Andra props går till det renderade elementet, så className, style och händelsehanterare fungerar som vanligt.

Webb och React Native

Varje objekt renderas som standard som button (itemAs ändrar det); ett tryck anropar onValueChange(key, item).

I React Native är objekten Pressable; positionen körs på native driver och storleken på en nästlad vy som styrs av JavaScript.

Används i de här exemplen

Sök

Skriv för att söka i dokumentationen.