Tutti i componenti

MotionHighlight

Tab, controlli segmentati o navigazione a partire dai dati, con un’unica evidenziazione che si sposta sulla selezione.

WebReact NativeSelezione e pagine

Provalo

Preparazione dell’esempio…

L’uso più breve

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

Di che cosa si occupa al posto tuo

  • Un’unica evidenziazione si sposta e si ridimensiona tra gli elementi; stilizzala con highlightClassName.
  • Gli elementi vengono da items, le key da getKey e le etichette da renderItem.
  • hover le fa seguire il puntatore e tornare alla selezione.
  • Gli elementi possono andare a capo su più righe e l’evidenziazione li segue.
  • Il caricamento dei font e i cambi di layout vengono rimisurati in automatico.

Usalo per

  • Le tab di una pagina.
  • Una barra di filtri.
  • Un controllo segmentato in un modulo di impostazioni.

Props

PropTipoPredefinitoDescrizione
itemsreadonly T[]—obbligatoriaIl tuo array di dati.
valuekey | null—obbligatoriaKey dell’elemento evidenziato; null nasconde l’evidenziazione.
onValueChange(key, item) => voidViene eseguito con la key e l’elemento quando un elemento viene premuto.
getKey(item) => string | numberitem.idRestituisce una key unica e stabile per un elemento. Di default è item.id, oppure l’elemento stesso per stringhe e numeri.
renderItem(item, { selected, index }) => ReactNodeitem.labelDisegna un elemento; riceve se è selezionato.
hoverbooleanfalseSegue il puntatore sugli elementi e torna a value quando esce (web).
itemAselement'button'L’elemento per ogni voce.
itemClassNamestringClasse per l’elemento di ogni voce; itemStyle imposta il suo stile inline.
highlightClassNamestringClasse per l’evidenziazione; highlightStyle imposta il suo stile inline.
transitionTransitionspringUna curva di timing { duration, easing } o una molla { tempo: 'spring', spring }. Le molle conservano lo slancio quando vengono interrotte.

Le altre props vanno all’elemento renderizzato, quindi className, style e gli event handler funzionano come sempre.

Web e React Native

Ogni elemento viene renderizzato come button di default (itemAs lo cambia); premerlo chiama onValueChange(key, item).

Su React Native gli elementi sono Pressable; la posizione gira sul driver nativo e la dimensione su una view annidata guidata da JavaScript.

Usato in questi esempi

Cerca

Scrivi per cercare nella documentazione.