תמיכה בחלונות במחשב

עיבוד החלק הנצפה בלבד במחשב מאפשר למשתמשים להפעיל אפליקציות מרובות בו-זמנית עם שינוי גודל חלונות של אפליקציות לחוויה רב-תכליתית כמו שולחן עבודה.

באיור 1 אפשר לראות את הארגון של המסך כשחלונות המחשב מופעלים. כדאי לשים לב:

  • המשתמשים יכולים להפעיל כמה אפליקציות בו-זמנית זו לצד זו.
  • סרגל האפליקציות מופיע במיקום קבוע בתחתית המסך שבו מוצגות האפליקציות הפעילות. המשתמשים יכולים להצמיד אפליקציות כדי לגשת אליהן במהירות.
  • סרגל כותרת חדש בהתאמה אישית מקשט את החלק העליון של כל חלון בפקדים כמו הקטנה והגדלה.
איור 1. חלון שולחן העבודה בטאבלט.

כברירת מחדל, אפליקציות נפתחות במסך מלא בטאבלטים עם Android. כדי להפעיל אפליקציה בחלון של שולחן העבודה, לוחצים לחיצה ארוכה על נקודת האחיזה של החלון בחלק העליון של המסך וגוררים את נקודת האחיזה בתוך ממשק המשתמש, כפי שמוצג באיור 2.

כשאפליקציה פתוחה בחלון מחשב, אפליקציות אחרות נפתחות בחלונות של שולחן עבודה בתור נו.

איור 2. לוחצים לחיצה ארוכה וגוררים את נקודת האחיזה לחלון של האפליקציה כדי להיכנס לחלון של האפליקציה במחשב.

המשתמשים יכולים להפעיל חלונות שולחן עבודה גם מהתפריט שמופיע מתחת נקודת האחיזה של החלון כשמקישים או לוחצים על נקודת האחיזה או משתמשים במקשי הקיצור מקש Meta (Windows, Command או Search) + Ctrl + למטה.

משתמשים יוצאים ממצב חלון במחשב על ידי סגירת כל החלונות הפעילים או על ידי אחיזת ידית החלון בחלק העליון של חלון במחשב וגרירה של האפליקציה לחלק העליון של המסך. אפשר גם להקיש על Meta + H כדי לצאת עיבוד החלק הנצפה בלבד במחשב ומריץ שוב את האפליקציות במסך מלא.

כדי לחזור לחלון הראווה של שולחן העבודה, מקישים או לוחצים על המשבצת של מרחב שולחן העבודה מסך מהזמן האחרון.

שינוי הגודל ומצב תאימות

בחלונות במחשב, אפשר לשנות את הגודל של אפליקציות עם כיוון נעילה באופן חופשי. כלומר, גם אם פעילות מוגדרת לנעילה בכיוון לאורך, המשתמשים עדיין יכולים לשנות את גודל האפליקציה לחלון בכיוון רוחבי.

איור 3. שינוי הגודל של חלון אפליקציה מוגבלת לפורמט אנכי לפורמט אופקי.

בממשק המשתמש של אפליקציות שהוגדרו כבלתי ניתנות לשינוי גודל (כלומר, resizableActivity = false), המערכת משנה את הגודל שלהן תוך שמירה על יחס גובה-רוחב זהה.

איור 4. ממשק המשתמש של אפליקציה שלא ניתן לשנות את גודל החלון משתנה בהתאם לגודל החלון.

לאפליקציות מצלמה שנועלות את הכיוון או שהוצהרו ככאלה שלא ניתן לשנות את הגודל שלהן יחס מיוחד לעיניות המצלמה: ניתן לשנות את גודל החלון באופן מלא אבל העינית שומרת על אותו יחס גובה-רוחב. אם משתמשים באפליקציות פועלות תמיד לאורך או לרוחב, הקוד של האפליקציות הוא בתוך הקוד או באופן אחר הנחות שמובילות לחישובים שגויים של התצוגה המקדימה או התמונה שצולמה כיוון או יחס גובה-רוחב, שיוצרות תמונות נמתחות, נמתחות או הפוכות.

עד שהאפליקציות יהיו מוכנות להטמיע עיניות מצלמה עם תגובה דינמית מלאה, הטיפול המיוחד מספק חוויית משתמש בסיסית יותר שמפחיתה את ההשפעות של הנחות שגויות.

למידע נוסף על מצב התאימות לאפליקציות מצלמה: מצב תאימות של מכשירים

איור 5. יחס הגובה-רוחב של העינית במצלמה נשמר כשמשנים את גודל החלון.

רכיבי כותרת מותאמים אישית

לכל האפליקציות שפועלות בחלון במחשב יש סרגל כותרת, גם במצב immersive.
חשוב לוודא שכותרת האפליקציה לא מסתירה את התוכן שלה. סרגל הכותרת הוא סוג של סרגל כתוביות מוטמע: androidx.compose.foundation.layout.WindowInsets.Companion.captionBar(); בתצוגות, WindowInsets.Type.captionBar(), שנכלל בסרגלי המערכת.

מידע נוסף על טיפול בחלקים חתוכים זמין במאמר הצגת תוכן מקצה לקצה באפליקציה וטיפול בחלקים חתוכים בחלון ב'כתיבה'.

אפשר גם להתאים אישית את סרגל הכותרת. ב-Android 15 הושק סוג המראה APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND כדי להפוך את סרגל הכותרת לשקוף, וכך לאפשר לאפליקציות לצייר תוכן מותאם אישית בתוך סרגל הכותרת.

לאחר מכן, האפליקציות אחראיות לעיצוב החלק העליון של התוכן שלהן כך שייראה כמו סרגל הכתוביות (רקע, תוכן מותאם אישית וכו'), מלבד רכיבי הכתוביות של המערכת (לחצני סגירה והגדלה למסך מלא), שהמערכת מצייר על סרגל הכתוביות השקוף שמעל האפליקציה.

אפליקציות יכולות לשנות את המראה של רכיבי המערכת בתוך הכיתוב של עיצובים בהירים כהים באמצעות APPEARANCE_LIGHT_CAPTION_BARS, בדומה למצב החלפת המצב של שורת הסטטוס וסרגל הניווט.

ב-Android 15 הושקה גם התכונה WindowInsets#getBoundingRects() שמאפשרת לאפליקציות לבחון לעומק מרכיבי סרגל הכתוביות בפירוט רב יותר. אפליקציות יכולות להבחין בין אזורים שבהם המערכת משרטטת רכיבי מערכת, וגם אזורים שלא נמצאים בשימוש שבהם אפליקציות יכולות למקם תוכן מותאם אישית בלי רכיבי מערכת חופפים.

רשימת האובייקטים מסוג Rect שמוחזרים על ידי ה-API מציינת אזורים במערכת שכדאי להימנע מהם. השטח שנותר (מחושב על ידי חיסור המלבנים) משורת הכתוביות) הוא המקום שבו האפליקציה יכולה לשרטט בלי עם חפיפה בין רכיבי מערכת ויכולת לקבל קלט.

Chrome לפני ואחרי הטמעת כותרות בהתאמה אישית.
איור 6. Chrome לפני ואחרי הטמעת כותרות בהתאמה אישית.

תמיכה במשימות מרובות ובמכונות מרובות

ריבוי משימות הוא בליבה של עיבוד החלונות במחשב, ומאפשר מספר כאשר אפליקציה יכולה להגביר את הפרודוקטיביות של המשתמשים.

ב-Android 15 מופיע המאפיין PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI, שאפשר להגדיר באפליקציות כדי לציין שמערכת הממשק של האפליקציה צריכה להופיע כדי לאפשר להפעיל אותה בכמה מופעים.

ניהול מכונות של אפליקציות באמצעות תנועות גרירה

במצב 'חלונות מרובים', המשתמשים יכולים להתחיל מופע חדש של האפליקציה על ידי גרירה של רכיב תצוגה מחלון האפליקציה. המשתמשים יכולים גם להעביר רכיבים בין מכונות של אותה אפליקציה.

איור 7. התחל מופע חדש של Chrome על ידי גרירת כרטיסייה אל מחוץ מהחלון של שולחן העבודה.

ב-Android 15 נוספו שני דגלים להתאמה אישית של התנהגות הגרירה והשחרור:

  • DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG: מציין שגרירה שלא מטופלת צריכה להוענק למערכת להפעלה, אם אין חלון גלוי שמטפל בהשלכה. כשמשתמשים בדגל הזה, המתקשר צריך לספק ClipData עם Item מכיל IntentSender שלא ניתן לשינוי פעילות שתושק (מידע נוסף זמין בכתובת ClipData.Item.Builder#setIntentSender()). המערכת יכולה להפעיל את הכוונה או לא, על סמך גורמים כמו המסך הנוכחי גודל או מצב חלון. אם המערכת לא מפעילה את הכוונה, הכוונה בוטל באמצעות התהליך הרגיל של גרירה ושחרור.

  • DRAG_FLAG_GLOBAL_SAME_APPLICATION: מציין שאפשר לגרור מעבר לגבולות החלון (במקרים של כמה מופעים של אותה אפליקציה).

    כשפונים לפונקציה startDragAndDrop() עם הדגל הזה מוגדר, רק חלונות גלויים ששייכים לאותה אפליקציה יכולים להשתתף בפעולה של גרירה ולקבל את התוכן שנגרר.

איור 8. העברת כרטיסייה בין שתי מופעים של אפליקציית Chrome.

אופטימיזציות נוספות

ניתן להתאים אישית את השקות האפליקציה ולהעביר אפליקציות מחלונות הראווה למחשב למסך מלא.

לציין ברירת מחדל לגודל ולמיקום

לא כל האפליקציות, גם אם אפשר לשנות את הגודל שלהן, זקוקות לחלון גדול כדי לספק ערך למשתמשים. אפשר להשתמש בשיטה ActivityOptions#setLaunchBounds() כדי לציין גודל ומיקום ברירת מחדל כשפעילות מופעלת.

לעבור למצב מסך מלא ממרחב שולחן העבודה

אפליקציות יכולות לעבור למצב מסך מלא באופן פרוגרמטי באמצעות קריאה ל-Activity#requestFullScreenMode(). השיטה הזו מעבירה את האפליקציה למצב מסך מלא ישירות מהחלון של שולחן העבודה.