וריאנט מגדיר מצב חזותי ספציפי לחלונית, ומאפשר לחלונית אחת להציג כמה ייצוגים חזותיים שונים, כמו מצב פתוח או סגור. משתמשים ב-XML כדי להגדיר את הווריאציה. משתמשים בתג משנה בתוך רכיב <Panel>
.
לכל תג <Variant>
יש מאפיין חובה id
שמזהה אותו באופן ייחודי.
התג יכול גם להפנות לגרסת הורה כדי לרשת מאפיינים. מנגנון ההורשה הזה מאפשר להגדיר ביעילות מאפיינים משותפים בכמה וריאציות.
מאפייני XML
כדי להגדיר מצבים ומעברים, משתמשים במאפיינים האלה עם התג <TaskPanel>
או <DecorPanel>
.
מאפיין | סטטוס | תיאור |
---|---|---|
id |
חובה | מזהה ייחודי של הווריאציה. המזהה הזה משמש להתייחסות לגרסה במעברים או כ-defaultVariant של חלונית.
|
parent |
אופציונלי | מציין את המזהה של וריאציה אחרת שממנה הווריאציה הנוכחית אמורה לרשת מאפיינים. אם מאפיין לא מוגדר במפורש בווריאציה הנוכחית, המערכת חוזרת לערך שהוגדר בווריאציה האב. |
רכיבי צאצא ב-XML
אפשר להשתמש ברכיבים האופציונליים האלה כדי לציין את המאפיינים החזותיים של החלונית כשהיא במצב של הווריאציה הזו.
רכיב צאצא | תיאור |
---|---|
<Visibility> |
מציין אם החלונית גלויה או מוסתרת ומכילה מאפיין isVisible (בוליאני). |
<Alpha> |
מציין את רמת השקיפות של החלונית. מכיל מאפיין alpha (מספר עשרוני, 0.0 עד 1.0). |
<Layer> |
מגדיר את סדר ה-Z של החלונית ביחס לחלוניות אחרות; מכיל מאפיין layer (מספר שלם). הערכים הגבוהים יותר מוצגים בחלק העליון. |
<Focus> |
ההגדרה קובעת אם החלונית יכולה לקבל מיקוד במהלך מעבר. ההגדרה מכילה מאפיין onTransition (בוליאני).
|
<Bounds> |
המאפיין מגדיר את האזור המלבני (המיקום והגודל) של החלונית במסך. האזור הזה נשלט על ידי מאפיינים כמו left, top, bottom, width ו-height.
כשמשתמשים באחוזים, אפשר להשתמש במאפייני היסט כדי להחיל התאמות קבועות על הגבולות מבוססי-האחוזים – לדוגמה, כדי להגדיר שחלונית תתפוס 100% מגובה המסך, אבל לא תכלול סרגל ניווט עם גובה קבוע בתחתית, צריך להגדיר את הגובה ל-100% ואת |
<SafeBounds> |
מציין אזור בטוח בגבולות החלונית שלא חופף לחלקים חתוכים או לתוספות של התצוגה, כדי להדגיש את התאימות לאפליקציות שמוצגות בתוכו. המאפיינים שלה דומים לאלה של <Bounds> .
|
<Corner> |
מגדיר את הרדיוס של פינות החלונית, ומאפשר פינות מעוגלות. מכיל מאפיין רדיוס (מספר שלם). פינה חדה היא ברירת המחדל ואין צורך להגדיר אותה. |
<Insets> |
מציינת את השוליים הפנימיים (padding) של הלוח. הוא מכיל מאפיינים של צד שמאל, צד עליון, צד ימין וצד תחתון. ההוספות האלה מדווחות לאפליקציות שהופעלו בחלונית.
|
<Background> |
הוספנו חלונית אופציונלית לעיצוב הרקע, כדי למנוע אפקטים שקופים כשעוברים בין אפליקציות. הוא מגדיר מאפיינים כמו צבע ואלפא לשכבת העיצוב הזו. מאפייני שכבת העיצוב, כמו גבולות ושכבה, מוגדרים כברירת מחדל למאפייני הווריאציה אם הם לא הוגדרו כבר. |
קוד לדוגמה
<Variant id="@id/opened">
<Visibility isVisible="true"/>
<Bounds left="0dp"
top="0dp"
right="100%"
bottom="100%"
bottomOffset="100dp"/>
<Alpha value="1.0"/>
<Layer value="10"/>
<Focus onTransition="true"/>
<Corner radius="24dp"/>
<Insets left="16dp" top="0dp" right="16dp" bottom="48dp"/>
<Background color="@color/app_background" alpha="0.9"/>
</Variant>
אינטרפולציה של מאפיינים חזותיים
משתמשים ב-KeyFrameVariant
כדי לבצע אינטרפולציה של מאפיינים חזותיים. ההרחבה המיוחדת הזו של variant
מבוססת על ערך חלקי רציף (0 עד 1) שמאפשר מעברים דינמיים חלקים שמונעים על ידי קלט רציף, כמו פעולת גרירה שבה המצב של החלונית משתנה באופן דינמי בהתאם למרחק הגרירה.
מאפייני XML
ל-KeyFrameVariant
אין מאפיינים. התג <KeyFrameVariant>
מכיל את המידע שדרוש להגדרת KeyFrameVariant
.
רכיבי צאצא ב-XML
KeyFrameVariant
מכיל תג צאצא אחד או יותר של <KeyFrame>
. לכל <KeyFrame>
יש מאפיין framePosition
(0-100) והוא מתייחס למאפיין וריאציה (המזהה של וריאציה אחרת). הערכים האלה keyframes
מגדירים את המצב של החלונית בנקודות ספציפיות במעבר רציף.
קוד לדוגמה
<KeyFrameVariant id="@id/panel_resizing">
<KeyFrame framePosition="0" variant="@id/minimized"/>
<KeyFrame framePosition="75" variant="@id/opened"/>
<KeyFrame framePosition="100" variant="@id/expanded"/>
</KeyFrameVariant>