Toate componentele

MotionHighlight

File, controale segmentate sau navigare din date, cu un singur evidențiator care se mută la selecție.

WebReact NativeSelecție și paginare

Încercați

Se pregătește exemplul…

Cea mai scurtă utilizare

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

Ce rezolvă în locul dumneavoastră

  • Un singur evidențiator se mută și se redimensionează între elemente; stilizați-l cu highlightClassName.
  • Elementele vin din items, key-urile din getKey, iar etichetele din renderItem.
  • hover îl face să urmeze cursorul și să revină la selecție.
  • Elementele se pot încadra pe mai multe rânduri, iar evidențiatorul le urmează.
  • Încărcarea fonturilor și schimbările de layout sunt măsurate din nou automat.

Folosiți-o pentru

  • File de pagină.
  • O bară de filtre.
  • Un control segmentat într-un formular de setări.

Props

PropTipImplicitDescriere
itemsreadonly T[]—obligatoriuTabloul cu datele dumneavoastră.
valuekey | null—obligatoriuKey-ul elementului evidențiat; null ascunde evidențiatorul.
onValueChange(key, item) => voidRulează cu key-ul și elementul când un element este apăsat.
getKey(item) => string | numberitem.idReturnează un key unic și stabil pentru un element. Implicit item.id sau elementul însuși pentru șiruri și numere.
renderItem(item, { selected, index }) => ReactNodeitem.labelDesenează un element; primește dacă este selectat.
hoverbooleanfalseUrmează cursorul peste elemente și revine la value la ieșire (web).
itemAselement'button'Elementul pentru fiecare element din listă.
itemClassNamestringClasă pentru fiecare element din listă; itemStyle îi setează stilul inline.
highlightClassNamestringClasă pentru evidențiator; highlightStyle îi setează stilul inline.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.

Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.

Web și React Native

Fiecare element se randează implicit ca button (itemAs schimbă asta); apăsarea lui apelează onValueChange(key, item).

În React Native elementele sunt Pressable; poziția rulează pe driverul nativ, iar mărimea pe o vizualizare imbricată condusă de JavaScript.

Folosită în aceste exemple

Căutare

Tastați pentru a căuta în documentație.