Alle Komponenten

MotionHighlight

Tabs, Segmented Controls oder Navigation aus Daten, mit einer Hervorhebung, die zur Auswahl wandert.

WebReact NativeAuswahl und Blättern

Ausprobieren

Beispiel wird vorbereitet…

Kürzeste Nutzung

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

Was sie dir abnimmt

  • Eine Hervorhebung bewegt sich zwischen den Elementen und passt ihre Größe an; gestalte sie mit highlightClassName.
  • Elemente kommen aus items, Keys aus getKey und Beschriftungen aus renderItem.
  • hover lässt sie dem Zeiger folgen und zur Auswahl zurückkehren.
  • Elemente können auf mehrere Zeilen umbrechen, und die Hervorhebung folgt ihnen.
  • Das Laden von Schriften und Layoutänderungen werden automatisch neu gemessen.

Gut für

  • Seiten-Tabs.
  • Eine Filterleiste.
  • Ein Segmented Control in einem Einstellungsformular.

props

PropTypStandardBeschreibung
itemsreadonly T[]—erforderlichDein Daten-Array.
valuekey | null—erforderlichKey des hervorgehobenen Elements; null blendet die Hervorhebung aus.
onValueChange(key, item) => voidLäuft mit Key und Element, wenn ein Element gedrückt wird.
getKey(item) => string | numberitem.idGibt einen eindeutigen, stabilen Key für ein Element zurück. Standard ist item.id oder bei Strings und Zahlen das Element selbst.
renderItem(item, { selected, index }) => ReactNodeitem.labelZeichnet ein Element; erhält, ob es ausgewählt ist.
hoverbooleanfalseDem Zeiger über Elemente folgen und beim Verlassen zu value zurückkehren (Web).
itemAselement'button'Das Element für jeden Eintrag.
itemClassNamestringKlasse für jedes Eintragselement; itemStyle setzt seinen Inline-Style.
highlightClassNamestringKlasse für die Hervorhebung; highlightStyle setzt ihren Inline-Style.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.

Weitere props gehen an das gerenderte Element, also funktionieren className, style und Event-Handler wie gewohnt.

Web und React Native

Jedes Element wird standardmäßig als button gerendert (itemAs ändert das); ein Druck ruft onValueChange(key, item) auf.

Unter React Native sind Elemente Pressables; die Position läuft auf dem nativen Treiber, die Größe auf einer verschachtelten, per JavaScript gesteuerten View.

Verwendet in diesen Beispielen

Suchen

Tippe, um die Dokumentation zu durchsuchen.