MotionHighlight
Tab, kontrol bersegmen, atau navigasi dari data, dengan satu sorotan yang berpindah ke pilihan.
WebReact NativePilihan dan halaman
Coba
Menyiapkan contoh…
Penggunaan terpendek
<MotionHighlight
items={['Overview', 'Activity', 'Settings']}
value={tab}
onValueChange={setTab}
hover
/>;Yang ditanganinya untuk Anda
- Satu sorotan berpindah dan berubah ukuran antar item; beri gaya dengan
highlightClassName. - Item berasal dari
items, key darigetKey, dan label darirenderItem. hovermembuatnya mengikuti pointer dan kembali ke pilihan.- Item bisa membungkus ke beberapa baris dan sorotan mengikutinya.
- Pemuatan font dan perubahan tata letak diukur ulang secara otomatis.
Gunakan untuk
- Tab halaman.
- Bilah filter.
- Kontrol bersegmen di formulir pengaturan.
Props
| Prop | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
items | readonly T[] | —wajib | Array data Anda. |
value | key | null | —wajib | Key item yang disorot; null menyembunyikan sorotan. |
onValueChange | (key, item) => void | Berjalan dengan key dan item saat sebuah item ditekan. | |
getKey | (item) => string | number | item.id | Mengembalikan key yang unik dan stabil untuk sebuah item. Bawaannya item.id, atau item itu sendiri untuk string dan angka. |
renderItem | (item, { selected, index }) => ReactNode | item.label | Menggambar item; menerima apakah item itu terpilih. |
hover | boolean | false | Mengikuti pointer di atas item dan kembali ke value saat pointer pergi (web). |
itemAs | element | 'button' | Elemen untuk setiap item. |
itemClassName | string | Class untuk setiap elemen item; itemStyle mengatur gaya inline-nya. | |
highlightClassName | string | Class untuk sorotan; highlightStyle mengatur gaya inline-nya. | |
transition | Transition | spring | Kurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi. |
Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.
Web dan React Native
Setiap item dirender sebagai button secara bawaan (itemAs mengubahnya); menekannya memanggil onValueChange(key, item).
Di React Native, item berupa Pressable; posisi berjalan dengan driver native dan ukuran pada view bersarang yang digerakkan JavaScript.
Dipakai di contoh-contoh ini
- Kotak masukTab filter dengan hitungan langsung, baris yang bisa digeser pergi, dan daftar yang menutup celahnya.
MotionHighlightMotionListMotionSwipeMotionNumber - Feed fotoGeser foto, lompat dengan thumbnail, buka foto mana pun di layar penuh, dan tarik detailnya ke atas.
MotionPagerMotionHighlightMotionZoomMotionSheet