אפליקציות ל-Android פועלות עכשיו במגוון מכשירים (כמו טלפונים, טאבלטים, מכשירים מתקפלים, מחשבים, מכוניות וטלוויזיות) ובמצבי תצוגת חלונות במסכים גדולים (כמו מסך מפוצל וממשק מחשב). לכן, מפתחים צריכים ליצור אפליקציות ל-Android שמותאמות לכל גודל מסך וחלון, בלי קשר לכיוון המסך במכשיר. פרדיגמות כמו הגבלת כיוון המסך והגבלת שינוי הגודל כבר לא מתאימות לעולם של היום, שבו משתמשים במספר מכשירים.
התעלמות מהגבלות על כיוון, שינוי גודל ויחס גובה-רוחב
באפליקציות שמטרגטות ל-Android 17 (רמת API 37) ומעלה, ההגבלות על כיוון, שינוי גודל ויחס גובה-רוחב לא חלות יותר על מסכים עם רוחב מינימלי של 600dp ומעלה. האפליקציות ממלאות את חלון התצוגה, בלי קשר ליחס הגובה-רוחב או להעדפת הכיוון של המשתמש, ולא נעשה שימוש בפורמט pillarbox.
ב-Android 17 הוסרה האפשרות הזמנית למפתחים לבטל את ההגבלות על כיוון ושינוי גודל במכשירים עם מסך גדול, שסופקה ב-Android 16.
השינוי הזה מציג התנהגות חדשה של הפלטפורמה. מערכת Android עוברת למודל שבו האפליקציות צריכות להתאים את עצמן לכיוונים, לגדלים של מסכים וליחסי גובה-רוחב שונים. כיוון מסך קבוע או שינוי גודל מוגבל מקשים על התאמת האפליקציה. כדי לספק את חוויית המשתמש הטובה ביותר, צריך להתאים את האפליקציה למצבים שונים.
אתם יכולים גם לבדוק את ההתנהגות הזו באמצעות מסגרת התאימות של האפליקציה ולהפעיל את דגל התאימות UNIVERSAL_RESIZABLE_BY_DEFAULT.
שינויים נפוצים בתוכנה שעלולים לגרום לכשלים
התעלמות מהגבלות על כיוון, שינוי גודל ויחס גובה-רוחב עלולה להשפיע על ממשק המשתמש של האפליקציה במכשירים מסוימים, במיוחד על רכיבים שנועדו לפריסות קטנות שמוגבלות לכיוון לאורך. לדוגמה, באפליקציות יכולות להיות בעיות כמו פריסות מתוחות ואנימציות ורכיבים מחוץ למסך. הנחות לגבי יחס הגובה-רוחב או הכיוון עלולות לגרום לבעיות חזותיות באפליקציה. מידע נוסף על איך להימנע מבעיות כאלה ולשפר את יכולת ההתאמה של האפליקציה למצבים שונים.
בעיה נפוצה במכשירים מתקפלים לרוחב או בחישובים של יחס גובה-רוחב בתרחישים כמו ריבוי חלונות, ממשק מחשב או מסכים מחוברים, היא שהתצוגה המקדימה של המצלמה נראית מתוחה, מסובבת או חתוכה. הבעיה הזו מתרחשת לעיתים קרובות במכשירים עם מסך גדול ובמכשירים מתקפלים, כי האפליקציות מניחות שיש קשרים קבועים בין תכונות המצלמה (כמו יחס גובה-רוחב וכיוון החיישן) לבין תכונות המכשיר (כמו כיוון המכשיר והכיוון הטבעי). מידע נוסף על ניהול התצוגה המקדימה של המצלמה
כשמאפשרים סיבוב מכשיר, מתבצעות יותר יצירות מחדש של פעילויות, וזה עלול להוביל לאובדן מצב המשתמש אם הוא לא נשמר כראוי. במאמר שמירת מצבי ממשק המשתמש מוסבר איך לשמור אותם נכון.
פרטי ההטמעה
במכשירים עם מסך גדול במצב מסך מלא ובמצב ריבוי חלונות, המערכת מתעלמת ממאפייני המניפסט וממשקי ה-API של זמן הריצה הבאים:
screenOrientationresizeableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
המערכת מתעלמת מהערכים הבאים של screenOrientation, setRequestedOrientation() ו-getRequestedOrientation():
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
לגבי שינוי הגודל של התצוגה, הערכים הבאים לא מושפעים: android:resizeableActivity="false",
android:minAspectRatio ו-android:maxAspectRatio.
חריגים
ההגבלות של Android 17 על כיוון, שינוי גודל ויחס גובה-רוחב לא חלות במצבים הבאים:
- משחקים (על סמך הדגל
android:appCategory) - משתמשים שמביעים הסכמה מפורשת לפעולת ברירת המחדל של האפליקציה בהגדרות יחס הגובה-רוחב של המכשיר
- מסכים שהרוחב המינימלי שלהם קטן מ-
sw600dp