WindowManager
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
2 ביולי 2025 | 1.4.0 | - | 1.5.0-beta01 | - |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-WindowManager, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר Google's Maven repository.
מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle
של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.window:window:1.4.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.4.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.4.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.4.0" // For testing implementation "androidx.window:window-testing:1.4.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.4.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.4.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.4.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.4.0") // For testing implementation("androidx.window:window-testing:1.4.0") }
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.
גירסה 1.5
גרסה 1.5.0-beta01
2 ביולי 2025
androidx.window:window-*:1.5.0-beta01
משוחרר. גרסה 1.5.0-beta01 מכילה את הקומטים האלה.
גרסה 1.5.0-alpha02
7 במאי 2025
androidx.window:window-*:1.5.0-alpha02
משוחרר. גרסה 1.5.0-alpha02 מכילה את הקומטים האלה.
שינויים ב-API
- מוסיפים נקודות עצירה (breakpoint) של
WindowSizeClass
לגדלים Large ו-XLarge. (I40d85) - מרחיבים את החישוב
WindowMetrics
להקשר של האפליקציה. (I8eeeb, b/360934048) - צריך לספק Getter כדי לאפשר גישה ישירה אל
WindowLayoutInfo
(Ie9513) - הוספנו API לשמירה אוטומטית של מצב ההטמעה ולשחזור אוטומטי של מצב ההטמעה כשמפעילים מחדש את תהליך האפליקציה. (Ie0295)
- הסרה של API ניסיוני של
WindowInsets
. (I68a71) - הסתרה של כמה יצרנים (I87b8d)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שהפונקציה
EmbeddingRule
החזירה ערך שונה שלhashCode
במקרים מסוימים. (I748cc)
גרסה 1.5.0-alpha01
12 במרץ 2025
androidx.window:window-*:1.5.0-alpha01
משוחרר. גרסה 1.5.0-alpha01 מכילה את הקומטים האלה.
תכונות חדשות
- גרסה ראשונית של 1.5.0.
גרסה 1.4
גרסה 1.4.0
20 במאי 2025
androidx.window:window-*:1.4.0
משוחרר. גרסה 1.4.0 מכילה את הקומטים האלה.
שינויים חשובים מאז גרסה 1.3.0
- הטמעת פעילות
- API להתאמה אישית של אנימציות ההפעלה
- קו מפריד אינטראקטיבי
ActivityStack
הצמדה- הצללה של תיבת דו-שיח במסך מלא
- התקשרות חוזרת עם פרטי חלון הפעילות המוטמע
- ניהול משופר של
ActivityStack
- הפעלת פעילות ב
ActivityStack
ספציפי
WindowMetricsCalculator
- שיפור התמיכה בבדיקות
WindowMetrics
- שיטות נוחות לחישוב
withDp
ו-heightDp
- עדכון בדיקת הגבולות ל-
isAtLeast
ושימוש בגבולות התחתונים כדי לתמוך בהוספת ערכים חדשים
- שיטות נוחות לחישוב
WindowSizeClass
- הוספת דרך לחישוב מ-
WindowMetrics
- הוספת דרך לחישוב מ-
WindowInfoTracker
- הוספת API לזיהוי התנוחות הנתמכות במכשיר
גרסה 1.4.0-rc02
23 באפריל 2025
androidx.window:window-*:1.4.0-rc02
משוחרר. גרסה 1.4.0-rc02 מכילה את הקומטים האלה.
תיקוני באגים
- תיקון קריסה של proguard עבור
ActivityEmbedding
.
גרסה 1.4.0-rc01
12 במרץ 2025
androidx.window:window-*:1.4.0-rc01
משוחרר. גרסה 1.4.0-rc01 מכילה את הקומטים האלה.
תכונות חדשות
- עדכונים ב-API של
WindowSizeClass
. - עדכונים בממשקי API להטמעת פעילויות.
גרסה 1.4.0-beta02
12 בפברואר 2025
androidx.window:window-*:1.4.0-beta02
משוחרר. גרסה 1.4.0-beta02 מכילה את הקומטים האלה.
תכונות חדשות
- תיקון הערה שהייתה רק בנכס ולא בפונקציית ה-getter.
גרסה 1.4.0-beta01
15 בינואר 2025
androidx.window:window-*:1.4.0-beta01
משוחרר. גרסה 1.4.0-beta01 מכילה את הקומטים האלה.
תכונות חדשות
- מוסיפים API כדי לאפשר התאמה אישית של
ActivityEmbedding
אנימציות. - הרחבת
WindowMetricsCalculator
ממשקי ה-API לבדיקה כדי לאפשר זיוף של מדדי החלון.
שינויים ב-API
- הסתרה של כמה יצרנים (I87b8d)
- אפשרות לאפליקציות להתאים אישית אנימציות
ActivityEmbedding
(If31a8) - נוספה תמיכה ביעד KMP וביעד kotlin 1.9 (Icf15d, b/364652024)
watchosDeviceArm64
- חשיפת ממשקי
WindowMetricsCalculator
API. (I1cebf)
תיקוני באגים
- הספרייה הזו משתמשת עכשיו בהערות לגבי ערכי null של JSpecify, שהן הערות לשימוש בסוג. מפתחים ב-Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict
(זו ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). (Ie69ac, b/326456246)
גרסה 1.4.0-alpha05
16 באוקטובר 2024
androidx.window:window-*:1.4.0-alpha05
משוחרר. גרסה 1.4.0-alpha05 מכילה את הקומטים האלה.
תכונות חדשות
- מוסיפים פונקציות נוחות כדי לקבל את
widthDp
ואתheightDp
מ-WindowMetrics
.
שינויים ב-API
- הוספה של
widthDp
ו-heightDp
אלWindowMetrics
. (Ide026) - הסרה של API ניסיוני של
WindowInsets
. (I68a71) - עדכון של שמות השיטות לבדיקת גבולות ל-
isAtLeast
(Ib0ab7)
גרסה 1.4.0-alpha04
2 באוקטובר 2024
androidx.window:window-*:1.4.0-alpha04
משוחרר. גרסה 1.4.0-alpha04 מכילה את הקומטים האלה.
שינויים ב-API
- נוספה שיטה לחישוב
WindowSizeClass
מתוךWindowMetrics
. (874dba) - שינינו את ה-methods של
WindowSizeClass
ל-containsWidthDp
, ל-containsHeightDp
ול-containsWindowSizeDp
כדי שההסבר יהיה ברור יותר. (fa760d) - המרת
WindowAreaController
למחלקת בסיס מופשטת. (I90893)
תיקוני באגים
- הוספת תמיכה בגבולות יחסיים כשיוצרים בדיקה
FoldingFeature
. (2e6b3e) - תיקוני באגים כלליים כשבוחרים
WindowSizeClass
.
גרסה 1.4.0-alpha03
18 בספטמבר 2024
androidx.window:window-*:1.4.0-alpha03
משוחרר. גרסה 1.4.0-alpha03 מכילה את הקומטים האלה.
תכונות חדשות
- מוסיפים שיטה לשליפת
WindowSizeClass
מ-WindowMetrics
. (I83f1f) - שינוי השם של
isAtLeast
לcontainsBreakpoint
. (I85b47) - הוספת עומס יתר ל-
computeWindowSizeClass
באמצעות מספרים עשרוניים. (I3dcb2, b/364677934, b/364677802, b/364680886)
תיקוני באגים
- מוסיפים נקודות עצירה חסרות לקבוצת נקודות העצירה שמוגדרת כברירת מחדל
WindowSizeClass
. - תוקן באג שגרם לכך שבמקרים מסוימים לא נבחרו מאפיינים קומפקטיים בצורה נכונה.
גרסה 1.4.0-alpha02
4 בספטמבר 2024
androidx.window:window-*:1.4.0-alpha02
משוחרר. גרסה 1.4.0-alpha02 מכילה את הקומטים האלה.
תכונות חדשות
הוספת תמיכה ב-WindowSizeClass
בהתאמה אישית.
- פותחים את ה-constructor של
WindowSizeClass
כדי שמפתחים יוכלו להשתמש ב-constructor משלהם. - הוספת
isAtLeast
שיטות עזר כדי שמפתחים יוכלו לעבד טווח של ערכיWindowSizeClass
. - מוסיפים פונקציית הרחבה ב-
Set<WindowSizeClass>
כדי לחשב את ההתאמה הכי טובה מתוך הקבוצה. - מוסיפים קבועים לנקודות העצירה המומלצות ל-Android.
- מוסיפים את נקודת העצירה (breakpoint) שמתאימה לנקודות העצירה המומלצות ל-Android.
שינויים ב-API
- עדכון שמות השיטות של הגבולות עבור
WindowSizeClass
. (If89a6) - עדכון של API
WindowSizeClass
כדי לתמוך בהוספה של ערכי נקודות עצירה חדשים בעתיד. במקום גבולות מוחלטים, אנחנו משתמשים בגבולות התחתונים וממליצים למפתחים להשתמש בבדיקות של הגבול התחתון כשמעבדיםWindowSizeClass
. הגרסאות הקיימות שלWindowWidthSizeClass
ו-WindowHeightSizeClass
יצאו משימוש כי לא יפותחו יותר. (I014ce)
גרסה 1.4.0-alpha01
7 באוגוסט 2024
androidx.window:window-*:1.4.0-alpha01
משוחרר. גרסה 1.4.0-alpha01 מכילה את הקומטים האלה.
תכונות חדשות
- הצמדת ActivityStack מאפשרת לאפליקציות להצמיד את התוכן במאגר אחד ולבודד את הניווט שלו מהמאגר השני.
- מחיצה אינטראקטיבית מאפשרת לאפליקציות להציג מחיצה קבועה או מחיצה שאפשר לגרור בין שתי הפעילויות בתצוגה מפוצלת.
- האפשרות 'הצללה של תיבת דו-שיח במסך מלא' מאפשרת לאפליקציות לציין את אזור ההצללה של תיבת הדו-שיח, כך שיוצלל חלון המשימה כולו או רק המאגר שבו מוצגת תיבת הדו-שיח.
- החזרת מידע על חלון פעילות מוטמע מאפשרת לאפליקציות לקבל עדכונים שוטפים על חלון הפעילות המוטמע.
- הטמעת רקע לאנימציה מאפשרת לאפליקציות לציין את הרקע של האנימציה, וכך לשפר את האיכות של אנימציית המעבר כשמשתמשים ב-
ActivityEmbedding
. - שיפור בניהול של ActivityStack מאפשר לאפליקציות לשלוט יותר ב-
ActivityStacks
כשמשתמשים ב-ActivityEmbedding
, כולל: - הפעלת פעילות ב-
ActivityStack
מסוים - סיום של
ActivityStack
שינויים ב-API
ממשק API חדש
WindowInfoTracker#supportedPostures
:- API שקובע אם המכשיר תומך במצב שולחן למכשירים מתקפלים. הוספה של WindowAreaSessionPresenter#getWindow
הוספת ממשקי API לתמיכה בהצמדה
ActivityStack
:SplitPinRule
כיתהSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
הוספת ממשקי API כדי להפעיל ולהגדיר את המחיצה האינטראקטיבית
DividerAttributes
כיתהSplitAttributes.Builder#setDividerAttributes
הוספת ממשקי API להגדרת
EmbeddingConfiguration
ו-DimAreaBehavior
לתיבות דו-שיחEmbeddingConfiguration
כיתהDimAreaBehavior
כיתהActivityEmbeddingController#setEmbeddingConfiguration
הוספת ממשקי API לקבלת עדכונים על חלון הפעילות המוטמע
EmbeddedActivityWindowInfo
כיתהActivityEmbeddingController#embeddedActivityWindowInfo
הוספת ממשקי API להגדרת רקע של אנימציה להטמעה
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
צריך להוסיף ממשקי API כדי לסיים
ActivityStacks
ActivityEmbeddingController#finishActivityStacks
הוספת ממשקי API להגדרת ההפעלה
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
ממשקי ה-API הבאים יציבים ולא ניסיוניים יותר:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(moved from SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
הוספת ממשקי API לגרסה 1.4. (I56774)
תיקוני באגים
- תוקן באג במכשירים מסוימים שבו הערך UNAVAILABLE הוחזר במקום ACTIVE כשהסשן פעיל.
- הוסרה התמיכה ב-
transferActivityToWindowArea
במכשירים עםvendorApiLevel
בערך 2 בגלל תמיכה לא יציבה ב-API. - הוספנו API שמאפשר לגרור את המחיצה של הטמעת פעילות כדי להציג אותה במסך מלא. (I645c9)
- אפשרות לאפליקציות להשבית אנימציות של
ActivityEmbedding
באמצעות פרמטרים של אנימציה ל-SplitAttributes
. (Idc01a) - הסרנו את האפשרות ליצור באופן ידני תרשים של הגישה לממשקי API חדשים של הפלטפורמה, כי זה קורה באופן אוטומטי באמצעות מידול API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל R8 גרסה 3.3) ובכל הגרסאות כשמשתמשים ב-AGP 8.1 ואילך (למשל D8 גרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלץ לעדכן לגרסה D8 8.1 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, b/345472586)
- אפשרות שמאפשרת לתוספים לקבל פרמטרים של אנימציה עבור
SplitAttributes
כדי שהמכשיר יוכל להשתמש בהם למעברים של אנימציה. (Iede00) - הסתרת ממשקי API של שכבות-על (Ic4251)
- הוספת ממשקי API להגדרת המחיצה הקבועה או הניתנת לגרירה עבור הפיצול (Ia7a78)
- הוספת צפיפות ל-
WindowMetrics
(Id6723) - מוסיפים API כדי לקבל את
SupportedPostures
. (If557a) - הסרת
setLaunchingActivityStack
מ-API ניסיוני (I191cf) - Introduce
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - הוצאה משימוש של
#getToken
והוספה של#getActivityStackToken
(Ie0471) - הוספנו מתאם לקריאה חוזרת ל-API של זרימת
embeddedActivityWindowInfo
(Ida77f) - הוספת מתאם של קריאה חוזרת ל-API של זרימת overlayInfo (I7264f)
- הוספנו את
WindowSdkExtensionsRule
כדי לבטל אתextensionsVersion
לצורך בדיקה. (Ifb928) - - העברה של
#setLaunchingActivityStack
ל-Bundle כדי שתהיה תאימות לשימושים ב-ActivityOptionsCompat
.- המשתמשים צריכים להעביר את הערך
activityOptions.toBundle
במקום את הערךActvityOptions
עצמו. - הסרה של
#setLaunchingActivityStack(Activity)
. המשתמשים צריכים לעבור לשימוש ב-ActivityEmbeddingController#getActivityStac(Activity)
כדי לקבלActivityStack
, ולהעביר אתActivityStack
אל#setLaunchingActivityStack
. (Ie0ccc)
- המשתמשים צריכים להעביר את הערך
- – הוספנו את
ActivityStack.Token
ו-SpltInfo.Token
כמזהה לתקשורת בין WM Jetpack לבין תוספים.- הוצאה משימוש או החלפה של ממשקי API כדי לקבל או להחזיר אסימון במקום IBinder. (I12b24)
- – להציג את
ActivityEmbeddingController#invalidateVisibleActivityStacks
- הסרת
SplitController#invalidateTopVisibleSplitAttributes
כי התכונה אוחדה עם#invalidateVisibleActivityStacks
(I02ef5)
- הסרת
- – הוספת API להגדרת הטמעה. (I59a4a)
- - הוספת ממשקי API של
ActivityStack
androidx.Window
להצמדה או להסרת הצמדה בחלק העליון- עדכון אפליקציית ההדגמה כדי לאפשר הצמדה/ביטול הצמדה בחלק העליון
ActivityStack
(I24dd3)
- עדכון אפליקציית ההדגמה כדי לאפשר הצמדה/ביטול הצמדה בחלק העליון
- הוספה מחדש של
#finishActivityStacks
ושלActivityEmbeddingOptions
(Ic1ab3) - הסרת ממשקי API לא יציבים. (Ibc534, b/302380585)
גרסה 1.3
גרסה 1.3.0
29 במאי 2024
androidx.window:window-*:1.3.0
משוחרר. גרסה 1.3.0 מכילה את ההתחייבויות האלה.
שינויים חשובים מאז גרסה 1.2.0
- תמיכה ב-Kotlin Multiplatform לשימוש ב-Window Size Classes.
גרסה 1.3.0-rc01
14 במאי 2024
WindowManager
Jetpack 1.3 כולל תמיכה ב-Kotlin Multiplatform לתכונות של WindowSizeClass
וגם תיקוני באגים רבים.
androidx.window:window-*:1.3.0-rc01
משוחרר. גרסה 1.3.0-rc01 מכילה את הקומטים האלה.
גרסה 1.3.0-beta02
1 במאי 2024
androidx.window:window-*:1.3.0-beta02
משוחרר. גרסה 1.3.0-beta02 מכילה את הקומטים האלה.
שינויים ב-API
- הסרנו את התמיכה ביצירה ובשימוש ב
WindowSizeClass
מותאמים אישית. (Id1143)
תיקוני באגים
- תוקנה בעיה מספר
KotlinReflectionInternalError
שנגרמה כתוצאה מהסרת קבצים מסוימים על ידי proguard בהטמעות מסוימות של מכשירים. (I01b02)
גרסה 1.3.0-beta01
3 באפריל 2024
androidx.window:window-*:1.3.0-beta01
משוחרר. גרסה 1.3.0-beta01 מכילה את הקומטים האלה.
גרסה 1.3.0-alpha03
6 במרץ 2024
androidx.window:window-*:1.3.0-alpha03
משוחרר. גרסה 1.3.0-alpha03 מכילה את הקומטים האלה.
שינויים ב-API
- פיצול
WindowSizeClassUtil
לשיטות ממוקדות יותר. (Ie9292) - שחזור
WindowSizeClass#compute
(I21355, b/324293374)
תיקוני באגים
- תוקנה קריסה שבה ההקשר שסופק לא נפרס בצורה נכונה. (94d10ce , b/318787482)
גרסה 1.3.0-alpha02
7 בפברואר 2024
androidx.window:window-*:1.3.0-alpha02
משוחרר. גרסה 1.3.0-alpha02 מכילה את הקומיטים האלה.
תכונות חדשות
- בוצעו עדכונים בממשק ה-API של Window Size Class API כדי לשפר את הגמישות למפתחים שרוצים להשתמש במחלקות גודל משלהם.
שינויים ב-API
- הוספת מגבלות גובה לבחירת הרוחב. (I23393)
- הוספת פונקציות עזר לבחירת
WindowSizeClass
מתוך קבוצה. הוספנו פונקציות ניסיוניות לדירוג, כדי שמפתחים יוכלו לכתוב סלקטורים משלהם. מוסיפים פונקציית הרחבה של בורר כדי לבחור אתWindowSizeClass
הרחב ביותר בתוך גבול נתון. (I0c944) - פותחים את ה-constructor
WindowSizeClass
כדי להוסיף נקודות עצירה מותאמות אישית. (Ic1ff3) - הוספנו פונקציית נוחות ליצירת סיווג גודל מרוחב, גובה וצפיפות. (If67f4)
תיקוני באגים
- תוקן חריג כשערך float נחתך ל-0. (272ffac)
גרסה 1.3.0-alpha01
15 בנובמבר 2023
androidx.window:window-*:1.3.0-alpha01
משוחרר. גרסה 1.3.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeature
יציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכי
ActivityEmbedding
מזויפים יציבים עכשיו. -
WindowLayoutInfoPublisherRule
מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext
. - התכונה 'קיפול דוחות' ממפה נתונים לפרמטרים של
WindowInfoTracker
.UiContext
- הצגת גרסת התוספים במכשיר.
WindowProperties
קבועים לשינויים בהגדרות של משתמשים לכל אפליקציה:-
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— מודיע למערכת שהאפליקציה לא משתמשת בהחלפה של יחס הגובה-רוחב שמוצג למשתמש. PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— מודיע למערכת שהאפליקציה לא משתמשת באפשרות המסך המלא של הגדרות החלפת התאימות של יחס הגובה-רוחב של המשתמש
-
גרסה 1.2
גרסה 1.2.0
15 בנובמבר 2023
androidx.window:window-*:1.2.0
משוחרר. גרסה 1.2.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.1.0
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeature
יציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכי
ActivityEmbedding
מזויפים יציבים עכשיו. -
WindowLayoutInfoPublisherRule
מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext
. - התכונה 'קיפול דוחות' ממפה נתונים לפרמטרים של
WindowInfoTracker
.UiContext
- הצגת גרסת התוספים במכשיר.
גרסה 1.2.0-rc01
1 בנובמבר 2023
androidx.window:window-*:1.2.0-rc01
משוחרר. גרסה 1.2.0-rc01 כוללת את הקומיטים האלה.
תכונות חדשות
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeature
יציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכי
ActivityEmbedding
מזויפים יציבים עכשיו. -
WindowLayoutInfoPublisherRule
מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext
. - התכונה 'קיפול דוחות' ממפה נתונים לפרמטרים של
WindowInfoTracker
.UiContext
- הצגת גרסת התוספים במכשיר.
גרסה 1.2.0-beta04
18 באוקטובר 2023
androidx.window:window-*:1.2.0-beta04
משוחרר. גרסה 1.2.0-beta04 מכילה את הקומיטים האלה.
שינויים ב-API
- הסרת ממשקי API לא יציבים. (Ibc534, b/302380585)
גרסה 1.2.0-beta03
20 בספטמבר 2023
androidx.window:window-*:1.2.0-beta03
משוחרר. גרסה 1.2.0-beta03 מכילה את הקומיטים האלה.
תכונות חדשות
- מוסיפים
RequiresApi
בדיקות לממשקי API שצריכים גרסה ספציפית של תוספים כדי לפעול בצורה תקינה. - מוסיפים API כדי לחשוף את גרסת התוספים במכשיר.
שינויים ב-API
- הוספת הערה לגבי גרסת התוסף הנדרשת של Windows SDK בממשקי API ציבוריים.
- מסירים את
isXXXSupported
ברכיב Activity Embedding. (Ie3dae)
- מסירים את
- הוספנו את
WindowSdkExtensions
כדי לדווח על גרסת התוסף במכשיר.- הוספנו את
RequiresWindowSdkExtension
כדי לציין את גרסת התוסף המינימלית הנדרשת. (I05fd4)
- הוספנו את
- הופך את
WindowAreaInfo#getCapability
ללא ניתן לאיפוס. (I17048)
גרסה 1.2.0-beta01
26 ביולי 2023
androidx.window:window-*:1.2.0-beta01
משוחרר. גרסה 1.2.0-beta01 מכילה את הקומיטים האלה.
תכונות חדשות
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeature
יציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכי
ActivityEmbedding
מזויפים יציבים עכשיו. -
WindowLayoutInfoPublisherRule
מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext
. - התכונה 'קיפול דוחות' ממפה נתונים לפרמטרים של
WindowInfoTracker
.UiContext
שינויים ב-API
- סימון ממשקי API של
WindowArea
כניסיוניים כדי לאפשר המשך שינויים ב-API לקראת גרסה יציבה ב-1.3 (I857f5) - קובצי API עודכנו כדי להוסיף הערות על השבתת תאימות (I8e87a, b/287516207)
גרסה 1.2.0-alpha03
21 ביוני 2023
androidx.window:window-*:1.2.0-alpha03
משוחרר. גרסה 1.2.0-alpha03 מכילה את הקומיטים האלה.
תכונות חדשות
- הסרת ממשקי API שיצאו משימוש משטח ה-API.
- הוספת ממשקי API לתמיכה בתצוגות מקבילות.
- מוסיפים נכס כדי לבטל את ההסכמה לשינוי גודל בכפייה.
- מוסיפים את הנכס כדי לבטל את ההגדרה של יחס הרוחב-גובה המינימלי.
- הוספת יציבות ל-
ActivityEmbeddingRule
כדי לתמוך בבדיקות יחידה של הטמעת פעילות.
שינויים ב-API
תיקוני באגים
- הוספת מאפיין תאימות לביטול ההסכמה לשינוי גודל בכוח (Ie7ab1)
- הסרת
SESSION_STATE_CONTENT_INVISIBLE
מממשק התוספים. (I6ed19) - מייצבים את
ActivityEmbeddingRule
כדי לתמוך בבדיקות יחידה של הטמעת פעילות. (I8d6b6) - הוספת מאפיין תאימות לביטול ההסכמה לשימוש בנכס לשינוי יחס הגובה-רוחב המינימלי. (I66390)
- הסרה של ממשקי WindowArea API שהוצאו משימוש (Ieb67c)
- שינוי השם של מאפיין הלולאה של בקשת שינוי הכיוון ל-
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
. (Ie2fbd) - עדכון של שמות הקבועים של סשן אזור החלון (I83675)
- הוספת מאפיין תאימות לביטול הסכמה שמתעלם מלולאת בקשות של כיוון כשמזהים אותה (I0a7a2)
- הוספנו את
WindowAreaComponent#STATUS_ACTIVE
כדי לציין שהתכונה כבר פעילה. (I62bc3) - הוספת ממשקי API של
RearDisplayPresentationMode
(I0401c) - הסרת API של צבע הרקע לגרסה יציבה. (I34c3e)
- הסתרת ממשקי API של אזור החלון. (I39de0)
- מוסיפים שיטות לשינוי הערך של
SplitInfo
ב-SplitController
. מוסיפים שיטות בדיקה כדי ליצור כפילויות שלSplitInfo
ושלActivityStack
. (Icd69f) - הופכים את התג לאופציונלי עבור
ActivityRule.Builder
. (Ib0b44) - הסרה של
RatioSplitType
, ExpandContainersSplit
וHingeSplitType
. הםSplitType
עכשיו.- מחליפים את
#splitEqually()
,#expandContainers()
ו-#splitByHinge
בקבועיםSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
ו-SPLIT_TYPE_HINGE
- הסרת הפונקציונליות להגדרת סוג חלוקה חלופי של סוג חלוקת ציר. אם אי אפשר להחיל את סוג הפיצול של הציר בגלל המצב הנוכחי של המכשיר או החלון, המערכת תחזור לפיצול שווה של מאגר המשימות של האב. משתמשים ב-
SplitController#setSplitAttributesCalculator
כדי להתאים אישית את סוג הפיצול החלופי. (Ifcc59)
- מחליפים את
- הוצאה משימוש של
add
/removeSplitCallback
- העברה של
add
/removeSplitCallback
אלSplitControllerCallbackAdapter
- הוספת תמיכה ב
Flow
כדי לקבל רשימה שלSplitInfo
(I7f1b6)
- העברה של
- הוספת כלל בדיקה ל-
ActivityEmbeddingController
(I42e9b) - שינוי השם של
ActivityOptionsCompat
ל-ActivityEmbeddingOptions
(I89301) - מוסיפים
splitSupportStatus
כדי לציין אם אפשר להטמיע פעילות. (I10024) - הוספנו את
SplitAttributes.BackgroundColor
כדי לייצג טוב יותר את הערךDEFAULT
. הבהרה שאין תמיכה בצבע רקע לא אטום של אנימציה, ולכן כל הצבעים הלא אטומים יטופלו כברירת המחדל, כלומר ייעשה שימוש בצבע הרקע הנוכחי של חלון העיצוב. (Ic6b95) - מחליפים את
alwaysAllow()
ואתalwaysDisallow()
ב-ALWAYS_ALLOW
וב-ALWAYS_DISALLOW
. (I3057b) - מוסיפים ממשקי API ל-
SplitRule
, SplitAttributes
, SplitAttributesCalculator
. (I92d23) - מוסיפים
TestActivityStack
כדי ליצורActivityStack
לבדיקה- מוסיפים
TestSplitInfo
כדי ליצורSplitInfo
לבדיקה. (I8e779)
- מוסיפים
- הוספת דרך ליצור
SplitAttributesCalculatorParams
מזויף כדי שמפתחים יוכלו לאמת אתSplitAttributesCalculator
המותאם אישית שלהם (Id4a6e) - הוספת
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
ו-WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f)
גרסה 1.2.0-alpha02
7 ביוני 2023
androidx.window:window-*:1.2.0-alpha02
משוחרר. גרסה 1.2.0-alpha02 מכילה את הקומיטים האלה.
תכונות חדשות
- עדכון של API לבדיקה כדי להוסיף קבוע לתכונות קיפול לא מוגדרות.
- החלפת הערך באמצעות
WindowLayoutInfoPublishRule
תחליף את כל הערכים שלwindowLayoutInfo
, כולל הערך של Context based API.
שינויים ב-API
- הוספת קבוע לתכונת קיפול מרכזית לא מוגדרת. (I7530c)
תיקוני באגים
- צריך לעדכן את
WindowLayoutInfoPublishRule
כדי לתמוך בשינויים ב-Context
על סמךWindowLayoutInfo
. (I2037a)
גרסה 1.2.0-alpha01
24 במאי 2023
androidx.window:window-*:1.2.0-alpha01
משוחרר. גרסה 1.2.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
ייצוב של ממשקי API לבדיקה סביב הטמעת פעילות ו-WindowLayoutInfoTracker
. גרסה ActivityEmbeddingRule
קודמה לגרסה יציבה.
גרסה WindowMetricsCalculatorRule
קודמה לגרסה יציבה.
פונקציות עזר ליצירת FoldingFeature
לבדיקה הועברו לגרסה יציבה.
שינויים ב-API
- מייצבים את
ActivityEmbeddingRule
כדי לתמוך בבדיקות יחידה של הטמעת פעילות. (I8d6b6) -
WindowMetrisCalculatorTestRule
יציב ומאפשר מדדים של stub לבדיקות JVM. מומלץ להשתמש באמולטור כדי לקבל תוצאות מדויקות. - הוספנו יציבות לממשקי ה-API של הבדיקות ב-
WindowLayoutInfo
כדי לתמוך בבדיקות של JVM. (Ie036e) - מוסיפים
IntRange
לערכים של תכונת קיפול הבדיקה. (I69f7d)
גרסה 1.1
גרסה 1.1.0
7 ביוני 2023
androidx.window:window-*:1.1.0
משוחרר. גרסה 1.1.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.0.0
הטמעה של פעילות
- המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
נוסף כמאפיין בוליאני של התג<application>
במניפסט של האפליקציה. - הוצאנו משימוש את
isSplitSupported
והחלפנו אותו ב-splitSupportStatus
כדי לספק מידע מפורט יותר על הסיבה לכך שתכונת הפיצול לא זמינה. - נוספה המחלקה המקוננת
SplitController.SplitSupportStatus
כדי לספק קבועים של מצב לנכסsplitSupportStatus
. - העברתי רפקטורינג של
SplitController
לכמה מודולים:- מודול
ActivityEmbeddingController
עבור ממשקי API שקשורים ל-Activity
או ל-ActivityStack
. - הועבר
isActivityEmbedded
מ-SplitController
אלActivityEmbeddingController
. - מודול
RuleController
לפעולות שקשורות ל-EmbeddingRule
: - הוסרו ממשקי ה-API
SplitController
: clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- נוספו ממשקי API:
RuleController
-
addRule()
– מוסיף כלל או מעדכן את הכלל עם אותו התג. -
removeRule()
— מסיר כלל מהאוסף של הכללים הרשומים. -
setRules()
— מגדיר אוסף של כללים. -
clearRules()
— מסיר את כל הכללים הרשומים. -
parseRules()
– מנתח כללים מהגדרות כללים ב-XML.
- מודול
- כל המודולים דורשים הקשר כדי לעבור אתחול באמצעות שיטת
#getInstance()
, כולל:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- נוספה המחלקה
EmbeddingAspectRatio
כדי להגדיר קבועים של התנהגות דמוית enum שקשורים ליחס רוחב-גובה של התצוגה. - הכיתה
SplitAttributes
נוספה כדי להגדיר את פריסת המסך המפוצל. - נוספו פונקציות של מחשבון
SplitAttributes
ל-SplitController
כדי להתאים אישית פריסות מפוצלות:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
כדי לבדוק אם ממשקי ה-API שלSplitAttributesCalculator
נתמכים במכשיר
- נוסף שדה
EmbeddingRule#tag
. - עדכוני API ב-
SplitRule
:- Added
defaultSplitAttributes
— מגדיר את פריסת ברירת המחדל של פיצול המסך; מחליף אתsplitRatio
ואתlayoutDirection
. - נוספה תרגום של מאפייני ה-XML
splitRatio
ו-splitLayoutDirection
אלdefaultSplitAttributes
. - הגדרות המידות המינימליות שונו כך שהן מבוססות על פיקסלים שאינם תלויים בדחיסות (dp) במקום על פיקסלים.
- נוסף
minHeightDp
עם ערך ברירת מחדל של 600dp. - הערך של
minWidth
השתנה מ-minWidth
ל-600dp (ערך ברירת המחדל).minWidthDp
- הערך של
minSmallestWidth
השתנה מ-minSmallestWidth
ל-600dp (ערך ברירת המחדל).minSmallestWidthDp
- נוסף
maxAspectRatioInHorizontal
עם ערך ברירת המחדלALWAYS_ALLOW
. - נוסף
maxAspectRatioInPortrait
עם ערך ברירת מחדל 1.4. - הוגדרה מחלקה מקוננת
FinishBehavior
להחלפת קבועי התנהגות הסיום. - השינויים בנכס הוחלו על המחלקה המקוננת Builder של
SplitPairRule
ושלSplitPlaceholderRule
.
- Added
- החלפנו את
SplitInfo#getSplitRatio()
ב-SplitInfo#getSplitAttributes()
כדי לספק מידע נוסף שקשור לפיצול.
WindowLayout
- הוספנו תמיכה ניסיונית בהקשר של ממשק משתמש שאינו פעילות ל-
WindowInfoTracker
. - נוסף הקשר ממשק משתמש ניסיוני שאינו פעילות אל
WindowMetricsCalculator
.
שלבים בהעברה
- כדי להטמיע פעילויות ולהציג אותן בחלונות מפוצלים, האפליקציות צריכות להוסיף את המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
לתג<application>
במניפסט:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
כך המערכת יכולה לבצע אופטימיזציה של התנהגות החלונות המפוצלים באפליקציה מראש. SplitInfo
ratio- בודקים אם הפיצול הנוכחי מוערם:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- בודקים את היחס השוטף:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- בודקים אם הפיצול הנוכחי מוערם:
- העברות של SplitController:
SplitController.getInstance()
השתנה לSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
השתנה לRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
השתנה לActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
השתנה לRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
השתנה לRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
השתנה לRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
השתנה לRuleController.getInstance(Context).getRules()
.
SplitRule
property migrations:- התגים
minWidth
ו-minSmallestWidth
משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
או פשוט לחלק אתminWith
פיקסלים ב-displayMetrics#density
.
- התגים
- צריך להעביר את קבועי ההתנהגות של סיום הפעולה לקבועים של מחלקה דמוית enum
FinishBehavior
:FINISH_NEVER
השתנה לFinishBehavior.NEVER
.FINISH_ALWAYS
השתנה לFinishBehavior.ALWAYS
.FINISH_ADJACENT
השתנה לFinishBehavior.ADJACENT
.
- צריך להעביר את כיוון הפריסה אל
SplitAttributes.LayoutDirection
:ltr
השתנה לSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
השתנה לSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
השתנה לSplitAttributes.LayoutDirection.LOCALE
.- צריך להעביר את
splitRatio
אלSplitAttributes.SplitType.ratio(splitRatio)
.
SplitPairRule.Builder
migrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
השתנה ל-kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
-
setLayoutDirection(layoutDirection)
ו-setSplitRatio(ratio)
שינויים ב-kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- הפונקציות
setFinishPrimaryWithSecondary
ו-setFinishSecondaryWithPrimary
מקבלות את הקבועים שדומים ל-enumFinishBehavior
. פרטים נוספים זמינים במאמר בנושא העברות של כללי חלוקה. - משתמשים ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
כדי להציג פיצולים במכשירים במצב אנכי.
SplitPlaceholder.Builder
migrations:- יש לו רק פרמטרים
filters
ו-placeholderIntent
. מאפיינים אחרים עוברים לפונקציות setter. פרטים נוספים זמינים בקטע 'העברות של SplitPairRule.Builder'. - הפונקציה
setFinishPrimaryWithPlaceholder
מקבלת את הקבועים שדומים ל-enumFinishBehavior
. פרטים נוספים זמינים במאמר בנושא העברות של כללי חלוקה. - הערכים
setLayoutDirection(layoutDirection)
ו-setSplitRatio(ratio)
משתנים ל:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- משתמשים ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
כדי להציג פיצולים במכשירים במצב אנכי.
- יש לו רק פרמטרים
גרסה 1.1.0-rc01
10 במאי 2023
androidx.window:window-*:1.1.0-rc01
משוחרר. גרסה 1.1.0-rc01 כוללת את הקומיטים האלה.
תכונות חדשות
- השקת
ActivityEmbedding
כממשק API יציב. - תיקוני באגים שונים.
גרסה 1.1.0-beta02
5 באפריל 2023
androidx.window:window-*:1.1.0-beta02
משוחרר. גרסה 1.1.0-beta02 מכילה את הקומיטים האלה.
תכונות חדשות
- תיקונים פנימיים וניקוי.
גרסה 1.1.0-beta01
22 במרץ 2023
androidx.window:window-*:1.1.0-beta01
משוחרר. גרסה 1.1.0-beta01 מכילה את הקומיטים האלה.
הטמעה של פעילות
- המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
נוסף כמאפיין בוליאני של התג<application>
במניפסט של האפליקציה. - הוצאנו משימוש את
isSplitSupported
והחלפנו אותו ב-splitSupportStatus
כדי לספק מידע מפורט יותר על הסיבה לכך שתכונת הפיצול לא זמינה. - נוספה המחלקה המקוננת
SplitController.SplitSupportStatus
כדי לספק קבועים של מצב לנכסsplitSupportStatus
. - העברתי רפקטורינג של
SplitController
לכמה מודולים:- מודול
ActivityEmbeddingController
עבור ממשקי API שקשורים ל-Activity
או ל-ActivityStack
. - הועבר
isActivityEmbedded
מ-SplitController
אלActivityEmbeddingController
. - מודול
RuleController
לפעולות שקשורות ל-EmbeddingRule
: - הוסרו ממשקי ה-API של
SplitController
:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- נוספו ממשקי ה-API של
RuleController
:-
addRule()
– מוסיף כלל או מעדכן את הכלל עם אותו התג. -
removeRule()
— מסיר כלל מהאוסף של הכללים הרשומים. -
setRules()
— מגדיר אוסף של כללים. -
clearRules()
— מסיר את כל הכללים הרשומים. - `parseRules() — מנתח כללים מהגדרות כללים ב-XML.
-
- מודול
- כל המודולים דורשים הקשר כדי לעבור אתחול באמצעות שיטת
#getInstance()
, כולל:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- נוספה המחלקה
EmbeddingAspectRatio
כדי להגדיר קבועים של התנהגות דמוית enum שקשורים ליחס רוחב-גובה של התצוגה. - הכיתה
SplitAttributes
נוספה כדי להגדיר את פריסת המסך המפוצל. - נוספו פונקציות של מחשבון
SplitAttributes
ל-SplitController
כדי להתאים אישית פריסות מפוצלות:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
-
isSplitAttributesCalculatorSupported()
כדי לבדוק אם ממשקי ה-API של SplitAttributesCalculator נתמכים במכשיר
- נוסף שדה
EmbeddingRule#tag
. - עדכוני API ב-
SplitRule
:- Added
defaultSplitAttributes
— מגדיר את פריסת ברירת המחדל של פיצול המסך; מחליף אתsplitRatio
ואתlayoutDirection
. - נוספה תרגום של מאפייני ה-XML
splitRatio
ו-splitLayoutDirection
אלdefaultSplitAttributes
. - הגדרות המידות המינימליות שונו כך שהן מבוססות על פיקסלים שאינם תלויים בדחיסות (dp) במקום על פיקסלים.
- נוסף
minHeightDp
עם ערך ברירת מחדל של 600dp. - הערך של
minWidth
השתנה מ-minWidth
ל-600dp (ערך ברירת המחדל).minWidthDp
- הערך של
minSmallestWidth
השתנה מ-minSmallestWidth
ל-600dp (ערך ברירת המחדל).minSmallestWidthDp
- נוסף
maxAspectRatioInHorizontal
עם ערך ברירת המחדלALWAYS_ALLOW
. - נוסף
maxAspectRatioInPortrait
עם ערך ברירת המחדל1.4
. - הוגדרה מחלקה מקוננת
FinishBehavior
להחלפת קבועי התנהגות הסיום. - השינויים במאפיינים הוחלו על הכיתה המקוננת
Builder
שלSplitPairRule
ו-SplitPlaceholderRule
.
- Added
- החלפנו את
SplitInfo#getSplitRatio()
ב-SplitInfo#getSplitAttributes()
כדי לספק מידע נוסף שקשור לפיצול.
WindowLayout
- נוספה תמיכה בהקשר של ממשק משתמש שאינו פעילות ל-
WindowInfoTracker
. - נוסף הקשר של ממשק המשתמש שאינו פעילות ל-
WindowMetricsCalculator
.
שלבים בהעברה
- כדי להטמיע פעילויות ולהציג אותן בחלונות מפוצלים, האפליקציות צריכות להוסיף את המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
לתג<application>
במניפסט:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
כך המערכת יכולה לבצע אופטימיזציה של התנהגות החלונות המפוצלים באפליקציה מראש. SplitInfo
ratio- בודקים אם הפיצול הנוכחי מוערם:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- בודקים את היחס השוטף:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- בודקים אם הפיצול הנוכחי מוערם:
SplitController
migrations:SplitController.getInstance()
השתנה לSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
השתנה ל-RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
השתנה לActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
השתנה לRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
השתנה לRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
השתנה לRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
השתנה לRuleController.getInstance(Context).getRules()
.
SplitRule
property migrations:- התגים
minWidth
ו-minSmallestWidth
משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
או פשוט לחלק אתminWith
פיקסלים ב-displayMetrics#density
.
- התגים
- צריך להעביר את קבועי ההתנהגות של סיום הפעולה לקבועים של מחלקה דמוית enum
FinishBehavior
:FINISH_NEVER
השתנה לFinishBehavior.NEVER
.FINISH_ALWAYS
השתנה לFinishBehavior.ALWAYS
.FINISH_ADJACENT
השתנה לFinishBehavior.ADJACENT
.
- צריך להעביר את כיוון הפריסה אל
SplitAttributes.LayoutDirection
:ltr
השתנה לSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
השתנה לSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
השתנה לSplitAttributes.LayoutDirection.LOCALE
.- צריך להעביר את
splitRatio
אלSplitAttributes.SplitType.ratio(splitRatio)
.
SplitPairRule.Builder
migrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
השתנה ל-kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
- הערכים
setLayoutDirection(layoutDirection)
ו-setSplitRatio(ratio)
ישתנו ל-kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- הפונקציות
setFinishPrimaryWithSecondary
ו-setFinishSecondaryWithPrimary
מקבלות את הקבועים שדומים ל-enumFinishBehavior
. פרטים נוספים זמינים במאמר בנושא העברות של כללי חלוקה. - משתמשים ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
כדי להציג פיצולים במכשירים במצב אנכי.
SplitPlaceholder.Builder
migrations:- יש לו רק פרמטרים
filters
ו-placeholderIntent
. מאפיינים אחרים עוברים לפונקציות setter. פרטים נוספים זמינים בקטע 'העברות של SplitPairRule.Builder'. - הפונקציה
setFinishPrimaryWithPlaceholder
מקבלת את הקבועים שדומים ל-enumFinishBehavior
. פרטים נוספים זמינים במאמר בנושא העברות של כללי חלוקה. - הערכים
setLayoutDirection(layoutDirection)
ו-setSplitRatio(ratio)
משתנים ל:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- משתמשים ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
כדי להציג פיצולים במכשירים במצב אנכי.
- יש לו רק פרמטרים
גרסה 1.1.0-alpha06
22 בפברואר 2023
androidx.window:window-*:1.1.0-alpha06
משוחרר. גרסה 1.1.0-alpha06 מכילה את הקומיטים האלה.
תכונות חדשות
- הצגת גרסה ניסיונית של קבלת
WindowLayoutInfo
מהקשר של ממשק משתמש.
שינויים ב-API
- מוסיפים
splitSupportStatus
כדי לציין אם אפשר להטמיע פעילות. (I10024) - הגדרת UI Context
WindowLayoutInfo
API כניסיוני. (I58ee0) - הוספנו את
WindowAreaController
ואת ממשקי ה-API כדי להפעיל את מצבRearDisplay
ולהעביר את החלון הנוכחי לתצוגה שמותאמת למצלמה האחורית. (Iffcbf) - עדכון צבע הרקע שמוגדר כברירת מחדל. (I1ac1b)
- הוספת פרמטרים של
SplitAttributes
. (I18bdd) - מוסיפים ממשקי API ל-
SplitRule
, SplitAttributes
, SplitAttributesCalculator
. (I92d23) - שיפור ממשקי ה-API של
maxAspectRatio
:- מחליפים את
alwaysAllow()
ואתalwaysDisallow()
ב-ALWAYS_ALLOW
וב-ALWAYS_DISALLOW
. - עדכון תיעוד ה-API של @see עם תיעוד עצמאי. (I3057b)
- מחליפים את
- הקונסטרוקטורים הבאים הוסרו מ-API ציבוריים כי הם לא אמורים להיקרא על ידי אפליקציות.
SplitInfo
constructor-
ActivityStack
constructor (Ide534)
SplitRule
מקבל עכשיוmaxAspectRatioInPortrait/Landscape
. הוא מאפשר רק פעילויות מפוצלות כשיחס הגובה-רוחב של הגבולות של הרכיב העליון קטן או שווה לערך המבוקשmaxAspectRatio
. (Ia5990)- שינוי
RuleController#parseRules
לסטטי (I785df) - שיפור ממשקי ה-API של ActivityEmbedding
- התאמה של שמות ה-API – שימוש בפקודות add/remove למספר מופעים:
registerRule
השתנה ל-addRule
unregisterRule
השתנה ל-removeRule
- מחליפים את
getSplitRules
ב-getRules
כיActivityRule
הוא לא כלל מפוצל - הוספת
RuleController#setRules
כדי להגדיר הרבה כללים - הוצאת ממשקי API שקשורים לכללי חילוץ מ-
SplitController
ל-singletonRuleController
. אלו הם: addRule
removeRule
getRules
setRules
clearRules
parseRules
- חילוץ
#isActivityEmbedded
מ-SplitController
ל-singletonActivityEmbeddingController
. אלו הם: isActivityEmbedded
- הסרה של
SplitController#initialize
. כדי להגדיר כללים מקובץ XML, צריך להשתמש בRuleController#parseRules
וב#setRules
. לפני השינוי:SplitController.initialize(context, R.xml.static_rules)
אחרי השינוי:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- אנחנו כבר לא מבחינים בין כללים סטטיים לבין כללים בזמן ריצה. עם זאת, קריאה ל-
#clearRules
תגרום למחיקת כל הכללים, גם אם הם רשומים בהגדרות כללים סטטיות של XML או בזמן ריצה. כדי להשתמש בהתנהגות הקודמת שלSplitController#clearRegisteredRules
, צריך להפעיל אתRuleController#parseRules
עם מזהה משאבי ה-XML ולהפעיל אתRuleController#setRules
כדי להגדיר מחדש את הכללים. לפני השינוי:SplitController.getInstance(context).clearRegisteredRules()
אחרי השינוי:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- שיפור ממשקי ה-API של SplitRule:
- המידות המינימליות של
SplitRule
צריכות להיות ב-DP ולא בפיקסלים. - שינוי מבנה הקוד של
SplitRule
Builder כך שמאפייני המינימום יהיו אופציונליים. (I95f17)
- המידות המינימליות של
- העברת הקשר כדי לאתחל את
SplitController
(I42549) - השם של
SplitRule#layoutDir
שונה ל-#layoutDirection
ושלSplitRule Builder#setLayoutDir
ל-Builder#setLayoutDirection
. (I3f6d1)
גרסה 1.1.0-alpha04
9 בנובמבר 2022
androidx.window:window-*:1.1.0-alpha04
משוחרר. גרסה 1.1.0-alpha04 מכילה את הקומיטים האלה.
תכונות חדשות
- חשיפת שיטה לקביעה אם
ActivityStack
ריק עבורActivityEmbedding
. - הסרנו תגי API ניסיוניים מ-
ActivityEmbedding
APIs. - הסתרת הבונה
ActivityRule
כיBuilder
היא הדרך המועדפת לבנייה. - מוסיפים שיטה ניסיונית כדי לקבל את
WindowInsets
ב-WindowMetrics
. - כדי למנוע את השלמת ה-placeholder, צריך לעדכן את
SplitPlaceholderFinishBehavior
. השלמת ה-placeholder גרמה להתנהגות מבלבלת.
שינויים ב-API
- הופכים את המשתנה val
isEmpty
לגלוי לכולם כדי להחליף את הפונקציה funisEmpty
. - משנים את השם של פעילויות הפרמטר
ActivityStack
ל-activitiesInProcess
. (Ia5055) - הסרת
ActivityFilter#matchesClassName
ו-ActivityFilter#matchesClassNameOrWildCard
כי הן מבלבלות. - מוסיפים את
ActivityFilter#componentName
ואתActivityFilter#intentAction
כדי לאפשר למתקשר להבחין בין מסננים שונים (I41f22) - הסרת ממשקי ה-API
@Deprecated
מממשק ה-API הניסיוני (I216b3) - הסרה של
@ExperimentalWindowApi
עבור ממשקי API להטמעת פעילות (I69ebe) - צריך להסתיר את הבונה
ActivityRule
ולהשתמש ב-Builder במקום זאת. (If4eb6) - מוסיפים ממשקי API כדי לבדוק אם פעילות מסוימת היא חלק מ-
ActivityFilter
. (Ia43cf) - עדכון קובצי API כדי לשקף שינויים במחלקות
WindowMetrics
ו-WindowMetricsCalculatorCompat
(I667fe) - עדכון של
ActivityEmbedding
Property Javadoc ושם המחלקה (Ia1386) - הוספת שמות של תגי מאפיינים
ActivityEmbedding
לשימוש בקובץ AndroidManifest.xml (Id1ad4) - נוספו ממשקי API חדשים
SplitPlaceholderFinishBehavior
ו-SplitPlaceholderRule.finishPrimaryWithPlaceholder
, שמחליפים את ממשק ה-API הקייםSplitPlaceholderRule.finishPrimaryWithSecondary
שמגדיר מתי פעילויות של placeholder מסתיימות ואיך פעילויות משויכות בהטמעת פעילויות צריכות להתנהג. (I64647)
תיקוני באגים
- הוספנו את
WindowAreaController
ואת ממשקי ה-API כדי להפעיל את מצבRearDisplay
ולהעביר את החלון הנוכחי לתצוגה שמותאמת למצלמה האחורית. (I388ab)
גרסה 1.1.0-alpha03
27 ביולי 2022
androidx.window:window-*:1.1.0-alpha03
משוחרר. גרסה 1.1.0-alpha03 מכילה את הקומיטים האלה.
תכונות חדשות
- מעדכנים את ערכי ברירת המחדל של כללי ההטמעה.
שינויים ב-API
- עדכון ערכי ברירת המחדל של מאפייני כלל ההטמעה. (Ic4d35)
גרסה 1.1.0-alpha02
11 במאי 2022
androidx.window:window-*:1.1.0-alpha02
משוחרר. גרסה 1.1.0-alpha02 מכילה את הקומיטים האלה.
תכונות חדשות
- השקנו את ספריות המתאמים כדי לתמוך ב-Java וב-RxJava.
גרסה 1.1.0-alpha01
11 במאי 2022
androidx.window:window-*:1.1.0-alpha01
משוחרר. גרסה 1.1.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
- הוספת מתאמים לתמיכה ב-Java וב-RxJava
גרסה 1.1.0-alpha01
20 באפריל 2022
androidx.window:window:1.1.0-alpha01
משוחרר. גרסה 1.1.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
- תוקן באג שגרם לכך שהעברת אפליקציה לרקע הפסיקה את הפעלת התכונות של הקיפול.
- הרחבה של ActivityEmbedding API הניסיוני.
שינויים ב-API
- API ציבורי לבדיקה אם פעילות מסוימת מוטמעת. (I39eb7)
תיקוני באגים
- הוספת ממשקי API להתאמה אישית של התנהגות הסיום של מאגרי תגים בפיצולים של פעילויות (I1a1e4)
- נוספה אפשרות הגדרה חדשה לכללים של פיצול פעילויות. (Iec6af)
גירסה 1.0
גרסה 1.0.0
26 בינואר 2022
androidx.window:window-*:1.0.0
משוחרר. גרסה 1.0.0 מכילה את הקומיטים האלה.
התכונות העיקריות של גרסה 1.0.0
- תמיכה בטלפונים מתקפלים בגרסאות
WindowInfoTracker
ו-FoldingFeature
.WindowMetricsCalculator
כדי לעזור לחשב את WindowMetrics הנוכחי.
גרסה 1.0.0-rc01
15 בדצמבר 2021
androidx.window:window-*:1.0.0-rc01
משוחרר. גרסה 1.0.0-rc01 כוללת את הקומיטים האלה.
תכונות חדשות
- אפשר להוסיף תמיכה בטלפונים מתקפלים דרך
WindowInfoTracker
. - מוסיפים שיטות לחישוב הערך הנוכחי והמקסימלי של
WindowMetrics
. - הוספת ממשקי API תומכים לבדיקה.
גרסה 1.0.0-beta04
17 בנובמבר 2021
androidx.window:window-*:1.0.0-beta04
משוחרר. גרסה 1.0.0-beta04 כוללת את הקומיטים האלה.
תכונות חדשות
- שינוי השם של WindowInfoRepository ל-WindowInfoTracker.
- הופכים את Activity לתלות מפורשת בשיטה של WindowInfoTracker.
- הוספת TestRule פשוט ל-WindowMetricsCalculator כדי לתמוך במפתחים שמשתמשים ב-Robolectric.
שינויים ב-API
- חילוץ תוספים (I25a5f)
- add isEmpty in ActivityStack (I5a4e6)
- שינוי השם של WindowInfoRepository ל-WindowInfoTracker.
- מעדכנים את יחסי התלות של java/rxjava/testing כך שיתאימו. (I0da63)
- מוסיפים כלל בדיקה ל-WindowMetricsCalculator פשוט. (Ibacdb)
גרסה 1.0.0-beta03
27 באוקטובר 2021
androidx.window:window-*:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את הקומיטים האלה.
תכונות חדשות
- הוספת ממשקי API ניסיוניים להטמעת פעילות. גרסת הפריסה הראשונית הזו מאפשרת להציג שתי פעילויות זו לצד זו.
שינויים ב-API
- הסרנו את currentWindowMetrics API כי אין לנו אפשרות לספק אותו בצורה מדויקת. במקומו צריך להשתמש ב-WindowMetricsCalculator (Icda5f)
- בוצע עדכון של ה-API של התוספים. (Ica92b)
- הוספנו ממשק לתכונה חדשה שמאפשרת להטמיע פעילויות ולהציג אותן זו לצד זו בחלון המשימה הראשי. (I5711d)
- הוסתרות המחלקות WindowMetrics ו-WindowLayoutInfo. במקומן צריך להשתמש בממשקי ה-API לבדיקה. (I5a1b5)
- הוספנו API ליצירת אובייקטים מזויפים של WindowLayoutInfo. (I4a2fd)
תיקוני באגים
- תוקנה דליפת זיכרון. (I3fc79, b/202989046)
גרסה 1.0.0-beta02
1 בספטמבר 2021
androidx.window:window-*:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את הקומיטים האלה.
תכונות חדשות
- מוסיפים הערה ניסיונית כדי להוסיף הערות ל-API ניסיוני. (I9f1b6)
- מוסיפים שיטת בדיקה כדי ליצור FoldingFeature לבדיקה שמקבלת Rect. כך יהיה קל יותר לבצע בדיקות כשמשתמשים ב-Robolectric, בניגוד לשימוש ב-Activity בפועל. (Id1cca)
גרסה 1.0.0-beta01
18 באוגוסט 2021
androidx.window:window-*:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 מכילה את הקומיטים האלה.
תכונות חדשות
- הוסרו קבועים ישנים ו-
FoldingFeature
הפך לממשק.
שינויים ב-API
- הסרת קבועים ישנים והפיכת FoldFeature לממשק. (I9a2d5)
תיקוני באגים
- ספריות שתלויות בספרייה
Test Core
שודרגו לגרסה1.4.0
ועכשיו הן פועלות עם פלטפורמת Android בגרסה S. (I88b72, b/189353863)
גרסה 1.0.0-alpha10
4 באוגוסט 2021
androidx.window:window-*:1.0.0-alpha10
משוחרר. גרסה 1.0.0-alpha10 מכילה את הקומיטים האלה.
תכונות חדשות
- משנים את השם של WindowInfoRepo ל-WindowInfoRepository ומתאימים את המחלקות או הקבצים התואמים.
- המרת מדדים של החלון הנוכחי ל-Flow ב-WindowInfoRepository, כי הערך משתנה לאורך זמן.
- שינוי השם של WindowInfoRepoJavaAdapter ל-WindowInfoRepoCallbackAdapter
- הוספת שיטת עזר ליצירת אובייקטים של FoldingFeature לבדיקה
- עדכון חבילות כדי לקבץ כיתות על סמך התכונה שהן תומכות בה.
שינויים ב-API
- משנים את השם של ActivityExt ל-ActivityExtensions משנים את Repo ל-Repository. (I61a16)
- עדכון חבילות לכיתות. (I23ae2)
- הסרת WindowMetrics מ-WindowInfoRepo (I24663)
- הסרה של WindowManager ושימוש ב-WindowInfoRepo
- הגדרת WindowBackend כפנימי. (I06d9a)
- המרת מדדים של חלון ל-Flow.
- שינוי השם של המתאם java ל-WindowInfoRepoCallbackAdapter
- מסירים את callbackFlow כדי שלא ייעשה יותר שימוש בממשקי API ניסיוניים. (Ia4d15)
- הוספת שיטת עזר ליצירת תכונות תצוגה לבדיקה.
- שינוי מ-occlusionMode ל-occlusionType (If4cff)
תיקוני באגים
- תוקנה שגיאת proguard שבה ספריית הליבה הוסרה.
- תוקנה שגיאה שבה WindowLayoutInfo לא הועבר למנויים נוספים.
- תוקנה שגיאה שגרמה לכך ששינויים בהגדרות לא הפעילו עדכונים של תכונת הקיפול.
גרסה 1.0.0-alpha09
30 ביוני 2021
androidx.window:window-*:1.0.0-alpha09
משוחרר. גרסה 1.0.0-alpha09 מכילה את הקומיטים האלה.
תכונות חדשות
- שינוי מקבועים מסוג מספר שלם לספירות לא חסומות.
- הוספת כלי בדיקה ליצירת תכונות קיפול לבדיקה.
שינויים ב-API
- הוספת שיטת עזר ליצירת תכונות תצוגה לבדיקה. (I3cf54)
- השינוי מ-
occlusionMode
ל-occlusionType
.
- השינוי מ-
תיקוני באגים
- פליטת ערך ראשוני כשמוסיפים כמה צרכנים של זרמי הנתונים.
גרסה 1.0.0-alpha08
16 ביוני 2021
androidx.window:window-*:1.0.0-alpha08
משוחרר. גרסה 1.0.0-alpha08 מכילה את הקומיטים האלה.
תכונות חדשות
- השקנו ארטיפקט לבדיקה כדי להקל על הבדיקה כשמשתמשים ב-WindowInfoRepository. משתמשים ב-WindowInfoRepository כדי לקבל מידע על DisplayFeatures ועל WindowMetrics. (I57f66, Ida620)
גרסה 1.0.0-alpha07
2 ביוני 2021
androidx.window:window-*:1.0.0-alpha07
משוחרר. גרסה 1.0.0-alpha07 מכילה את הקומיטים האלה.
תכונות חדשות
- העברה של ספריית חלונות הליבה ל-Kotlin. ישתמשו בפונקציות קורוטינות ופונקציות השהיה כדי לחשוף נתונים אסינכרוניים בעתיד.
- הוספת WindowInfoRepo כנקודת האינטראקציה הראשית לקבלת WindowMetrics וזרם WindowLayoutInfo.
- פריט מידע חדש של
window-java
שחושף ממשקי API ידידותיים ל-Java כדי לרשום ולבטל רישום של קריאות חוזרות (callback). -
window-rxjava2
ו-window-rxjava3
הם ארטיפקטים חדשים שחושפים ממשקי API מותאמים של RxJava.
שינויים ב-API
- מוסיפים את
WindowServices
כדי לספק יחסי תלות באופן אחיד.- הוספת API מבוסס-קורוטינה לצריכת מידע על פריסת חלונות. (Iab70f)
- העברת ספריית הליבה של מנהל החלונות ל-Kotlin. (Icca34)
תיקוני באגים
- הוספת מחלקת נתונים חדשה שמייצגת גבולות של תכונות. (I6dcd1)
גרסה 1.0.0-alpha06
5 במאי 2021
androidx.window:window:1.0.0-alpha06
משוחרר. גרסה 1.0.0-alpha06 מכילה את הקומיטים האלה.
תכונות חדשות
- התחלנו את המיגרציה ל-Kotlin ונסיימה במהדורה הבאה.
- המאפיין DeviceState הוסר מה-API הציבורי. במקומו צריך להשתמש במאפיין FoldingFeature.
- הסרנו את
STATE_FLIPPED
מהמצבים של FoldingFeature כי הוא לא נתמך כרגע באף תרחיש שימוש. - הסרנו גם ממשקי API אחרים שיצאו משימוש.
שינויים ב-API
- הוספת Kotlin כתלות.
- העברה של ספריית הליבה ל-Kotlin. (Idd995)
- הוסר הכלי ליצירת
DisplayFeature
. (I61fa4) - הוסר
DeviceState
מ-API ציבורי, במקומו צריך להשתמש ב-FoldingFeature
. (Id6079) - הסרת קריאה חוזרת (callback) של מצב המכשיר מתוספים. (I5ea83)
- הסרת
STATE_FLIPPED
מ-FoldingFeature. (I9c4e1) - הסרה של שיטות רישום שיצאו משימוש. (Ib381b)
גרסה 1.0.0-alpha05
24 במרץ 2021
androidx.window:window:1.0.0-alpha05
משוחרר. גרסה 1.0.0-alpha05 מכילה את הקומיטים האלה.
תכונות חדשות
הוספנו שיטות נוחות ל-FoldingFeature כדי שאפליקציות יוכלו לדעת אם התכונה מפרידה או מסתירה, ולקבוע את הכיוון של הציר. אנחנו גם מסתירים את סוג הציר כדי
אנחנו מסירים את שיטות הקריאה הסינכרוניות מ-WindowManager. שיטות קריאה סינכרוניות נוטות לשגיאות כי יש בהן תנאי מירוץ מרומז. רושמים מאזינים וקריאות חוזרות (callback) כדי לקבל עדכונים לגבי WindowLayoutInfo.
שינויים ב-API
- הוספת שיטות נוחות לעבודה עם FoldingFeatures (Ie733f)
- הסרה של שיטות קריאה סינכרוניות מ-WindowManager (I96fd4)
גרסה 1.0.0-alpha04
10 במרץ 2021
androidx.window:window:1.0.0-alpha04
משוחרר. גרסה 1.0.0-alpha04 מכילה את הקומיטים האלה.
תכונות חדשות
- תוקן באג שבו לא מופקת WindowLayoutInfo אם אין הטמעה של OEM. עכשיו אנחנו שולחים WindowLayoutInfo ריק.
- תוקן באג שגרם לכך שהמצב לא התעדכן בצורה תקינה אם מצב הציר השתנה בזמן שהאפליקציה פעלה ברקע. עכשיו המצב צריך להיות עקבי.
- עדכון קובצי ה-proguard שלנו כדי להתעלם מאזהרות של תלות בזמן ריצה.
תיקוני באגים
- הפונקציה מחזירה ערך ריק אם ספריית ה-OEM חסרה. (Ide935)
גרסה 1.0.0-alpha03
18 בפברואר 2021
androidx.window:window:1.0.0-alpha03
משוחרר. גרסה 1.0.0-alpha03 מכילה את הקומיטים האלה.
תכונות חדשות
- פליטת ערך ריק עבור WindowLayoutInfo כשההטמעה של יצרן הציוד המקורי ריקה. כך יהיה קל יותר להשתמש בספרייה במכשירים נוספים. מכיוון שממשקי ה-API הם אסינכרוניים, עדיין מומלץ שאפליקציות יכתבו קוד הגנתי ויפלטו ערך ברירת מחדל אחרי פסק זמן. אין לנו ערבויות לגבי הטמעות של יצרני ציוד מקורי (OEM), ויכול להיות שיהיה עיכוב בהצגת הערך הראשוני.
תיקוני באגים
- הפונקציה מחזירה ערך ריק אם ספריית ה-OEM חסרה. (Ide935)
גרסה 1.0.0-alpha02
27 בינואר 2021
androidx.window:window:1.0.0-alpha02
משוחרר. גרסה 1.0.0-alpha02 מכילה את הקומיטים האלה.
תכונות חדשות
הוצאנו משימוש כמה ממשקי API כדי לייעל את ממשקי ה-API ולצמצם את הסיכוי לטעויות. דוגמאות בולטות הן הסרת פעולות קריאה סינכרוניות מ-WindowManager והוצאה משימוש של DeviceState. פעולות קריאה סינכרוניות עלולות לגרום לתנאי מירוץ ולממשק משתמש שגוי.
המרנו את DisplayFeature לממשק שתכונות אחרות יטמיעו מעכשיו והלאה. התכונה הראשונה היא FoldingFeature, שמייצגת עכשיו קיפול מסך או ציר. הוא מכיל גם את מצב הציר במקום DeviceState.
המחלקות WindowMetrics נוספו ל-Android 11 כדי לספק למפתחים דרך פשוטה לשאילתות לגבי מדדים של חלון, למשל המיקום והגודל שלו במסך וכל שוליים פנימיים של המערכת. העברנו לאחור את ה-API בגרסה הזו כדי שמפתחים יוכלו להשתמש ב-WindowMetrics ולהמשיך לתמוך בגרסאות ישנות יותר של Android. אפשר לקבל את WindowMetrics דרך ממשקי ה-API
WindowManager#getCurrentWindowMetrics()
ו-WindowManager#getMaximumWindowMetrics().
שינויים ב-API
- הוצאה משימוש של ממשקי API שיוסרו בגרסת האלפא הבאה (Ib7cc4)
- העדכון
ExtensionInterface
מאפשר לקבל הפניות מפורשות לפעילות. (I07ded) - מבוא ל-WindowMetrics API. (I3ccee)
- הסרת שיטות קריאה סינכרוניות מ-WindowManager (I69983)
- הגנה על החבילה ExtensionWindowBackend. (Ied208)
תיקוני באגים
- עדכון ממשקי ה-API של
ExtensionInterface
כדי לקבל הקשרים חזותיים. (I8e827)
External Contribution
- מיזוג של DeviceState ו-WindowLayoutInfo כדי להקל על הגישה לנתונים. (Id34f4)
גרסה 1.0.0-alpha01
27 בפברואר 2020
הגרסאות androidx.window:window:1.0.0-alpha01
ו-androidx.window:window-extensions:1.0.0-alpha01
יוצאות לאור. גרסה 1.0.0-alpha01 מכילה את הקומיטים האלה.
זו הגרסה הראשונה של ספריית Window Manager.
תכונות חדשות
-
DisplayFeature
: ה-API החדש הזה מזהה שיבושים במשטחים השטוחים הרציפים של המסך, כמו צירים או קיפולים -
DeviceState
: ה-API החדש הזה מספק את המצב הנוכחי של הטלפון מתוך רשימה של מצבים מוגדרים (לדוגמה,CLOSED
,OPENED
,HALF_OPENED
וכו').