MotionHighlight
Karty, kontrolki segmentowe lub nawigacja z danych, z jednym wyróżnieniem, które przesuwa się do wyboru.
SiećReact NativeWybór i strony
Wypróbuj
Przygotowywanie przykładu…
Najkrótsze użycie
<MotionHighlight
items={['Overview', 'Activity', 'Settings']}
value={tab}
onValueChange={setTab}
hover
/>;Co robi za ciebie
- Jedno wyróżnienie przesuwa się i zmienia rozmiar między elementami; stylizuj je przez
highlightClassName. - Elementy pochodzą z
items, klucze zgetKey, a etykiety zrenderItem. hoversprawia, że podąża za wskaźnikiem i wraca do wyboru.- Elementy mogą zawijać się w kilka rzędów, a wyróżnienie za nimi podąża.
- Wczytanie czcionek i zmiany układu są mierzone ponownie automatycznie.
Do czego służy
- Karty strony.
- Pasek filtrów.
- Kontrolka segmentowa w formularzu ustawień.
Props
| Prop | Typ | Domyślnie | Opis |
|---|---|---|---|
items | readonly T[] | —wymagane | Twoja tablica danych. |
value | key | null | —wymagane | Klucz wyróżnionego elementu; null ukrywa wyróżnienie. |
onValueChange | (key, item) => void | Uruchamia się z kluczem i elementem po naciśnięciu elementu. | |
getKey | (item) => string | number | item.id | Zwraca unikalny, stabilny klucz elementu. Domyślnie item.id, a dla ciągów i liczb sam element. |
renderItem | (item, { selected, index }) => ReactNode | item.label | Rysuje element; dostaje informację, czy jest wybrany. |
hover | boolean | false | Podążaj za wskaźnikiem nad elementami i wróć do value po wyjściu (sieć). |
itemAs | element | 'button' | Element dla każdej pozycji. |
itemClassName | string | Klasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline. | |
highlightClassName | string | Klasa wyróżnienia; highlightStyle ustawia jego styl inline. | |
transition | Transition | spring | Krzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu. |
Pozostałe props trafiają do renderowanego elementu, więc className, style i obsługa zdarzeń działają jak zwykle.
Sieć i React Native
Każdy element domyślnie renderuje się jako button (itemAs to zmienia); naciśnięcie wywołuje onValueChange(key, item).
W React Native elementy to Pressable; pozycja działa na sterowniku natywnym, a rozmiar na zagnieżdżonym widoku sterowanym przez JavaScript.
Użyty w tych przykładach
- Skrzynka odbiorczaKarty filtrów z licznikami na żywo, wiersze do odrzucenia przesunięciem i lista, która zamyka lukę.
MotionHighlightMotionListMotionSwipeMotionNumber - Feed zdjęćPrzewijaj zdjęcia, przeskakuj miniaturami, otwórz dowolne zdjęcie na pełnym ekranie i wysuń jego szczegóły.
MotionPagerMotionHighlightMotionZoomMotionSheet