רכיבים הם תכונה של תצוגות שעון בשעונים רגילים ובשעונים חכמים, שמאפשרת להציג מידע נוסף. בדרך כלל המשתמש בוחר איזה מידע יוצג בסיבוך.
בדרך כלל, יש כמה סוגים של סיבוכים:
- מלבני
- מעגלי
- קשתות לאורך הקצה של תצוגת השעון
- רקע שמכסה את כל תצוגת השעון
ב-Wear OS, אפשר לחלק את מערכת הסיבוכים לשני חלקים:
- מקור הנתונים של הרכיב
- העיבוד של הרכיב
לדוגמה, אפליקציה לבריאות ולכושר עשויה להטמיע מקור נתונים של רכיב מידע על מספר הצעדים היומי. יכול להיות שהיא תוצג על ידי תצוגת השעון WFF.
מקורות נתונים בתכונות נוספות
מקורות נתונים של רכיבים מציינים רק את הנתונים שצריך לרנדר ואת סוג הרכיב. מקור הנתונים לא משפיע על האופן שבו הנתונים מוצגים בתצוגת השעון.
לדוגמה, מקור הנתונים של סיבוך הצעדים היומיים בתחום הבריאות והכושר עשוי להפיק את הנתונים הבאים כדי לציין שהמשתמש צעד היום 2,400 מתוך היעד של 10,000 צעדים:
- סוג:
GOAL_PROGRESS - ערך:
2400 - ערך יעד:
10000
שימו לב שאין בנתונים האלה שום דבר שמצביע על האופן שבו צריך להציג אותם.
תצוגת השעון מציינת אילו סוגים של רכיבים היא יכולה לרנדר. כך קובעים אילו מקורות נתונים יהיו זמינים למשתמש לבחירה.
בדוגמה של 'צעדים יומיים', אתם קובעים בהגדרת תצוגת השעון איך להציג את Value ואת TargetValue: כטקסט או כאינדיקטור התקדמות? ההחלטה הזו נתונה למעצב תצוגת השעון.
הגדרת רכיבים
האפשרות להציג סיבוכים בתצוגת השעון יכולה להיות שימושית למשתמשים, כי היא מאפשרת להם לקבל מגוון רחב יותר של מידע במבט חטוף, בהתאמה לצרכים שלהם.
מחליטים אם לתמוך בסיבוכים ובכמה סיבוכים לתמוך בתצוגת השעון, מה יהיו הצורות והמיקום שלהם ואילו סוגי נתונים הם יתמכו.
כל מקום בתצוגת השעון לרכיב מידע מוגדר כ-ComplicationSlot, שבתוכו מוגדר אזור תיחום לעיבוד של רכיב המידע:
<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY" x="100" y="100" width="100" height="100"> <BoundingOval x="0" y="0" width="100" height="100" /> <Complication type="SHORT_TEXT"> <!-- Complication content for rendering SHORT_TEXT data goes here --> </Complication> <Complication type="SMALL_IMAGE"> <!-- Complication content for rendering SMALL_IMAGE data goes here --> </Complication> </ComplicationSlot>
אפשר להשתמש בגישה דומה גם לגבי צורות תיחום אחרות, כמו מלבן ואליפסה.
הגדרת סוג הרכיב והגדרות ברירת המחדל
מערכת הרכיבים מספקת מספר סוגים שונים, שמאפשרים לתצוגת השעון להציג את סוג הנתונים שאפשר לייצג על המסך. לדוגמה, רכיב Arc, כפי שמוצג למעלה, לא מתאים במיוחד לסוג נתונים של רכיב מבוסס-תמונה כמו SMALL_IMAGE, אבל יכול להתאים מאוד לנתונים מספריים כמו RANGED_VALUE.
בהצהרה ComplicationSlot, מגדירים את supportedTypes לרשימה מופרדת ברווחים של הסוגים שאפשר להציג במשבצת הזו.
צריך גם להגדיר את מקור ברירת המחדל לComplicationSlot, אלא אם מאפשרים את הסוג EMPTY. במקרה כזה, הגדרת ברירת מחדל היא אופציונלית:
<ComplicationSlot slotId="2" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY" x="250" y="100" width="100" height="100"> <DefaultProviderPolicy defaultSystemProvider="STEP_COUNT" defaultSystemProviderType="SHORT_TEXT" /> <!-- ... --> </ComplicationSlot>
בנוסף לצורך לציין ספקים של המערכת, אפשר לציין גם ספקים שאינם של המערכת, כמו ספקים של צד שלישי, כדי להשתמש בהם כברירת מחדל, אם הם כבר מותקנים.
רינדור נתונים של רכיבים
אחרי שמגדירים את ComplicationSlot, את הגבולות ואת רכיב Complication
המכיל, משתמשים ברכיבי WFF רגילים, כמו PartDraw, PartImage ו-PartText, כדי להציג את נתוני הסיבוך.
לרכיבים בנתוני Complication יש גישה למקור נתונים מיוחד:
COMPLICATION, שמספק את מאפייני הנתונים השונים שהוגדרו על ידי מקור נתוני התוסף.
לדוגמה, רכיב SMALL_IMAGE יכול להגדיר את הערכים COMPLICATION.SMALL_IMAGE ו-COMPLICATION.SMALL_IMAGE_AMBIENT. אפשר להשתמש בהם במקום ב-resource ברכיב Image:
<Complication type="SMALL_IMAGE"> <PartImage x="0" y="0" width="100" height="100"> <Image resource="[COMPLICATION.SMALL_IMAGE]" /> </PartImage> </Complication>
לכל סוג של רכיב יש קבוצה שונה של מאפיינים זמינים שאפשר להגדיר. רשימה מלאה של כל המאפיינים מופיעה במאמר בנושא Complication.
בדוגמה הזו מוצג הטקסט מרכיב SHORT_TEXT של שעון:
<Complication type="SHORT_TEXT"> <PartText x="0" y="0" width="100" height="100"> <Text> <Font size="32"> <Template> <![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" /> </Template> </Font> </Text> </PartText> </Complication>
הצגת מידע שימושי ככל האפשר כשמציגים סיבוכים
יש כמה אתגרים בהוספת ComplicationSlots לתצוגת השעון:
- יש סוגים רבים של נתוני רכיבים. אפליקציות שונות יכולות לספק אחת או יותר מהאפשרויות האלה.
- לכל סוג נתונים של רכיב מידע יש מאפייני חובה וגם מאפיינים אופציונליים רבים. בודקים שהרינדור הכי שימושי נוצר מהמאפיינים הזמינים, תוך התחשבות בשילובים השונים.
כדי לפתור את הבעיות האלה, אפשר לנסות את האסטרטגיות הבאות:
- תמיכה בכמה סוגים של רכיבים בכל משבצת. לדוגמה,
SHORT_TEXTנתמך באופן נרחב במקורות נתונים של מידע נוסף, ולכן תמיכה במספר סוגים שונים, כמוSHORT_TEXT RANGED_VALUEלמידע נוסף קטן ועגול, מגדילה את התאימות. - להציע סוגים שונים של רכיבים בתצוגת השעון. לדוגמה, אפשר לתמוך ב-
RANGED_VALUEוב-GOAL_PROGRESSברכיבים של Arc שממוקמים בקצה, וב-SHORT_TEXTוב-SMALL_IMAGEברכיבים מעגליים בחלק המרכזי של תצוגת השעון. - בודקים אם יש רכיבים אופציונליים לכל סוג נתונים. לדוגמה,
SHORT_TEXTתומך באופן אופציונלי במאפיין של כותרת ובתמונה. הפריסה שלכם להצגת הנתונים הזמינים עשויה להיות שונה בהתאם לשאלה אם תמונה או שם זמינים או לא.