MotionHighlight
Раздели, сегментирани превключватели или навигация от данни, с едно подчертаване, което се мести към избора.
УебReact NativeИзбор и страници
Опитайте
Подготовка на примера…
Най-кратка употреба
<MotionHighlight
items={['Overview', 'Activity', 'Settings']}
value={tab}
onValueChange={setTab}
hover
/>;С какво се справя вместо вас
- Едно подчертаване се мести и сменя размера си между елементите; стилизирайте го с
highlightClassName. - Елементите идват от
items, ключовете отgetKey, а етикетите отrenderItem. hoverго кара да следва показалеца и да се връща към избора.- Елементите могат да се пренасят на няколко реда и подчертаването ги следва.
- Зареждането на шрифтове и промените в оформлението се измерват отново автоматично.
Подходящ за
- Раздели на страница.
- Лента с филтри.
- Сегментиран превключвател във формуляр с настройки.
Props
| Prop | Тип | По подразбиране | Описание |
|---|---|---|---|
items | readonly T[] | —задължително | Вашият масив с данни. |
value | key | null | —задължително | Ключ на подчертания елемент; null скрива подчертаването. |
onValueChange | (key, item) => void | Изпълнява се с ключа и елемента при натискане на елемент. | |
getKey | (item) => string | number | item.id | Връща уникален стабилен ключ за елемент. По подразбиране item.id, а за низове и числа — самия елемент. |
renderItem | (item, { selected, index }) => ReactNode | item.label | Рисува елемент; получава дали е избран. |
hover | boolean | false | Следвай показалеца над елементите и се върни към value при излизане (уеб). |
itemAs | element | 'button' | Елементът за всяка позиция. |
itemClassName | string | Клас за елемента на всяка позиция; itemStyle задава вградения му стил. | |
highlightClassName | string | Клас за подчертаването; highlightStyle задава вградения му стил. | |
transition | Transition | spring | Крива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване. |
Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.
Уеб и React Native
Всеки елемент по подразбиране се рендерира като button (itemAs го променя); натискането извиква onValueChange(key, item).
В React Native елементите са Pressable; позицията работи на нативния драйвер, а размерът — на вложен view, управляван от JavaScript.
Използван в тези примери
- Входяща пощаРаздели-филтри с броячи на живо, редове, които могат да се отместят, и списък, който затваря празнината.
MotionHighlightMotionListMotionSwipeMotionNumber - Поток от снимкиПлъзгайте през снимките, прескачайте с миниатюрите, отворете която и да е снимка на цял екран и издърпайте подробностите ѝ.
MotionPagerMotionHighlightMotionZoomMotionSheet