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 | class לאלמנט של כל פריט; itemStyle מגדיר את הסגנון המוטבע שלו. | |
highlightClassName | string | class להדגשה; highlightStyle מגדיר את הסגנון המוטבע שלה. | |
transition | Transition | spring | עקומת timing { duration, easing } או קפיץ { tempo: 'spring', spring }. קפיצים שומרים על התנופה שלהם כשמפריעים להם. |
props אחרים עוברים לאלמנט המרונדר, כך ש־className, style ומטפלי אירועים עובדים כרגיל.
אינטרנט ו־React Native
כל פריט מרונדר כ־button כברירת מחדל (itemAs משנה את זה); לחיצה עליו קוראת ל־onValueChange(key, item).
ב־React Native הפריטים הם Pressable; המיקום רץ על ה־driver הנייטיב והגודל על view מקונן שמונע ב־JavaScript.