מנהל החלונות
העדכון האחרון | גרסה יציבה | מועמד לפרסום | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
7 באוגוסט 2024 | 1.3.0 | - | - | 1.4.0-alpha01 |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-WindowManager, צריך להוסיף את מאגר Google Maven ל- בפרויקט שלכם. עיון מאגר Maven של Google מידע.
מוסיפים את יחסי התלות של פריטי המידע הנדרשים בקובץ build.gradle
בשביל
האפליקציה או המודול שלך:
מגניב
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
משוב
המשוב שלך עוזר לנו לשפר את Jetpack. נשמח לשמוע אם גילית בעיות חדשות או אם יש לך רעיונות לשיפור הספרייה הזו. מומלץ לעיין בעיות קיימות בספרייה הזו לפני שיוצרים ספר חדש. אפשר להוסיף את ההצבעה שלך לבעיה קיימת על ידי לחיצה על לחצן הכוכב.
מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.
גרסה 1.4
גרסה 1.4.0-alpha01
7 באוגוסט 2024
androidx.window:window-*:1.4.0-alpha01
משוחרר. גרסה 1.4.0-alpha01 מכילה את התחייבויות אלה.
תכונות חדשות
- התכונה הצמדת פעילות מקבץ מאפשרת לאפליקציות להצמיד את התוכן במאגר אחד כך שהניווט שלו יהיה מבודד מהמאגר האחר.
- מחיצה אינטראקטיבית מאפשרת לאפליקציות להציג קו מפריד קבוע או שניתן לגרור בין שתי הפעילויות במצגת מפוצלת.
- עמעום של תיבת דו-שיח במסך מלא מאפשר לאפליקציות לציין את אזור העמעום של תיבת הדו-שיח לעמעום את חלון המשימה כולו או רק לעמעם את המאגר שבו מוצגת תיבת הדו-שיח.
- קריאה חוזרת (callback) של חלון הפעילות המוטמע מאפשרת לאפליקציות לקבל ברציפות עדכונים של חלון הפעילות המוטמע.
- הטמעת רקע של אנימציה מאפשרת לאפליקציות לציין את רקע האנימציה, וכך לשפר את איכות אנימציית המעבר כשמשתמשים ב-
ActivityEmbedding
. - ניהול משופר של מקבץ הפעילות מאפשר לאפליקציות לקבל שליטה רבה יותר על
ActivityStacks
כשמשתמשים ב-ActivityEmbedding
, כולל: - ביצוע פעילות ל-
ActivityStack
שצוין - סיום
ActivityStack
שינויים ב-API
WindowInfoTracker#supportedPostures
API חדש:- ממשק API שקובע אם המכשיר תומך במצב TableTop במכשירים מתקפלים. הוספה של 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
(הועבר מ-SplitController#inאטיםTop visibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
הוספת ממשקי API לגרסה 1.4 (I56774)
תיקוני באגים
- תיקון באג במכשירים מסוימים שבהם הסטטוס 'לא זמין' יוחזר במקום למצב פעיל כשסשן פעיל.
- הסרת התמיכה ב-
transferActivityToWindowArea
במכשירים עםvendorApiLevel
מתוך 2 בגלל תמיכה לא יציבה ב-API. - הצגת ממשק API להפעלת גרירה למסך מלא עבור מחיצת גרירה ניתנת לגרירה של הטמעת פעילות. (I645c9)
- אפליקציות יכולות להשבית אנימציות של
ActivityEmbedding
באמצעות פרמטרים של אנימציה עבורSplitAttributes
. (Idc01a) - הוסרה חלוקה ידנית של הגישה לממשקי API של פלטפורמות חדשות, כי זה קורה באופן אוטומטי באמצעות בניית מודלים של API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל R8 גרסה 3.3) ובכל גרסאות ה-build כשמשתמשים ב-AGP 8.1 ואילך (למשל D8 גרסה 8.1). ללקוחות שלא משתמשים ב-AGP מומלץ לעדכן לגרסה D8 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, b/345472586)
- מתן הרשאה לתוספים להשתמש בפרמטרים של אנימציה עבור
SplitAttributes
כדי שהמכשיר יוכל להשתמש בהם למעברי אנימציה. (Iede00) - הסתרת ממשקי API של שכבת-על (Ic4251)
- הצגת ממשקי API להגדרת המחיצה הקבועה או ניתנת לגרירה של הפיצול (Ia7a78)
- נוספה צפיפות ל-
WindowMetrics
(Id6723) - כדי לקבל את
SupportedPostures
צריך להוסיף API. (If557a) - הסרת
setLaunchingActivityStack
מה-API הניסיוני (I191cf) - הצגה של
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - הוצאה משימוש של
#getToken
והוספת#getActivityStackToken
(Ie0471) - הצגת מתאם קריאה חוזרת (callback) ל-
embeddedActivityWindowInfo
Flow API (Ida77f) - הוספת מתאם קריאה חוזרת (callback) ל-overlayInfo Flow API (I7264f)
- הוספה של
WindowSdkExtensionsRule
כדי לשנות את ברירת המחדל שלextensionsVersion
לצורך בדיקה. (Ifb928) - - העברה של
#setLaunchingActivityStack
לחבילה בהתאם לשימושים ב-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 מובילים של
androidx.Window
/ביטול ההצמדה שלActivityStack
- מתבצע עדכון של אפליקציית ההדגמה כדי לאפשר הצמדה/ביטול ההצמדה של
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 לסיווגי גודל חלון.
גרסה 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
בהתאמה אישית ובשימוש בהן. (מזהה 1143)
תיקוני באגים
- תיקון בעיות מסוג
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
כדי שאפשר יהיה להוסיף נקודות עצירה (breakpoint) בהתאמה אישית. (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
- יש להוסיף הערות לגרסת תוסף ה-SDK של החלון הנדרש בממשקי API ציבוריים.
- צריך להסיר את
isXXXSupported
ברכיב הטמעת הפעילות. (Ie3dae)
- צריך להסיר את
- כדי לדווח על גרסת התוסף במכשיר, צריך להציג את
WindowSdkExtensions
.- צריך להציג את
RequiresWindowSdkExtension
כדי להוסיף הערות לגרסת התוסף המינימלית הנדרשת. (I05fd4)
- צריך להציג את
- הופך את
WindowAreaInfo#getCapability
ל-null. (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)
- מחליפים את
- הוצאה משימוש של
removeSplitCallback
/add
- העברה של
removeSplitCallback
/add
אל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
, כולל ה-API מבוסס-ההקשר.
שינויים ב-API
- יש להוסיף באופן קבוע לקיפול מרכזי שלא צוין. (I7530c)
תיקוני באגים
- צריך לעדכן את
WindowLayoutInfoPublishRule
כדי שיתמוך בשינויים מברירת המחדל שלWindowLayoutInfo
ב-Context
. (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()
- נוספו
RuleController
ממשקי API: addRule()
– הוספת כלל או עדכון הכלל עם אותו תג.removeRule()
– הסרת כלל מאוסף הכללים הרשומים.setRules()
— יוצר אוסף של כללים.clearRules()
– הסרה של כל הכללים הרשומים.parseRules()
– ניתוח כללים מההגדרות של כללי XML.
- מודול
- בכל המודולים נדרש הקשר כדי לאתחל באמצעות method
#getInstance()
, כולל:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- נוספה המחלקה
EmbeddingAspectRatio
כדי להגדיר קבועי התנהגות דמויי טיפוסים הקשורים ליחס גובה-רוחב של תצוגה. - נוספה המחלקה
SplitAttributes
כדי להגדיר את הפריסה המפוצלת. - נוספו פונקציות המחשבון של
SplitAttributes
ל-SplitController
כדי להתאים אישית פריסות מפוצלות:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
כדי לבדוק אם ממשקי ה-API שלSplitAttributesCalculator
נתמכים במכשיר
- נוסף שדה
EmbeddingRule#tag
. - עדכוני API ב-
SplitRule
:- נוסף
defaultSplitAttributes
— מגדיר את פריסת ברירת המחדל של פיצול; מחליפה אתsplitRatio
ואתlayoutDirection
. - נוסף תרגום של מאפייני ה-XML
splitRatio
ו-splitLayoutDirection
אלdefaultSplitAttributes
. - הגדרות המימדים המינימליות שונו לשימוש בפיקסלים שלא תלויים בדחיסות (dp) במקום בפיקסלים.
- בוצעה הוספה של
minHeightDp
עם ערך ברירת המחדל של 600dp. - הערך השתנה מ-
minWidth
ל-minWidthDp
עם ערך ברירת המחדל של 600dp. - הערך השתנה מ-
minSmallestWidth
ל-minSmallestWidthDp
עם ערך ברירת המחדל של 600dp. - בוצעה הוספה של
maxAspectRatioInHorizontal
עם ערך ברירת המחדלALWAYS_ALLOW
. - נוסף
maxAspectRatioInPortrait
עם ערך ברירת המחדל 1.4. - המחלקה הפנימית של
FinishBehavior
הוגדרה כדי להחליף קבועי התנהגות של סיום. - השינויים בנכס הוחלו על המחלקה המוצבת של ה-builder:
SplitPairRule
ו-SplitPlaceholderRule
.
- נוסף
- בוצעה החלפה של
SplitInfo#getSplitRatio()
בטקסטSplitInfo#getSplitAttributes()
כדי לספק מידע נוסף שקשור לפיצול.
פריסת חלון
- נוספה תמיכה ניסיונית בהקשר של ממשק משתמש שאינו פעילות ל-
WindowInfoTracker
. - נוסף הקשר ניסיוני של ממשק משתמש ללא פעילות ל-
WindowMetricsCalculator
.
שלבים להעברה
- כדי להפעיל הטמעת פעילויות להצגת פעילויות בפיצולים, האפליקציות חייבות להוסיף את המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
לתג<application>
של המניפסט:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
הפעולה הזו מאפשרת למערכת לבצע מראש אופטימיזציה של התנהגויות הפיצול באפליקציה. - יחס גובה-רוחב של
SplitInfo
- בודקים אם החלוקה הנוכחית בערימה:
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
נכסים:minWidth
ו-minSmallestWidth
משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
או פשוט לחלק אתminWith
בפיקסלים ב-displayMetrics#density
.
- יש להעביר את קבועי ההתנהגות של הסיום ל-
FinishBehavior
קבועי מחלקה דמויי טיפוסים בני מנייה (enum):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
העברות: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
לוקחים את הקבועיםFinishBehavior
דמויי enum. פרטים נוספים זמינים בקטע 'העברות SplitRule'.- צריך להשתמש בשיטת
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
כדי להציג פיצולים במכשירים בפריסה לאורך.
SplitPlaceholder.Builder
העברות:- מכיל רק פרמטרים מסוג
filters
ו-placeholderIntent
. מאפיינים אחרים עוברים למגדירים. לפרטים נוספים, אפשר לעיין במאמר בנושא 'העברות SplitPairRule.Builder'. setFinishPrimaryWithPlaceholder
לוקחת את הקבועיםFinishBehavior
דמויי טיפוסים בני מנייה (enum). פרטים נוספים זמינים בקטע 'העברות SplitRule'.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()
- נוספו
RuleController
ממשקי API:addRule()
– הוספת כלל או עדכון הכלל עם אותו תג.removeRule()
– הסרת כלל מאוסף הכללים הרשומים.setRules()
— יוצר אוסף של כללים.clearRules()
– הסרה של כל הכללים הרשומים.- 'parseRules() ' – 'מנתח כללים' מההגדרות של כללי XML.
- מודול
- בכל המודולים נדרש הקשר כדי לאתחל באמצעות method
#getInstance()
, כולל:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- נוספה המחלקה
EmbeddingAspectRatio
כדי להגדיר קבועי התנהגות דמויי טיפוסים הקשורים ליחס גובה-רוחב של תצוגה. - נוספה המחלקה
SplitAttributes
כדי להגדיר את הפריסה המפוצלת. - נוספו פונקציות המחשבון של
SplitAttributes
ל-SplitController
כדי להתאים אישית פריסות מפוצלות:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
כדי לבדוק אם יש תמיכה בממשקי ה-API של SplitAttributes מנות במכשיר
- נוסף שדה
EmbeddingRule#tag
. - עדכוני API ב-
SplitRule
:- נוסף
defaultSplitAttributes
— מגדיר את פריסת ברירת המחדל של פיצול; מחליפה אתsplitRatio
ואתlayoutDirection
. - נוסף תרגום של מאפייני ה-XML
splitRatio
ו-splitLayoutDirection
אלdefaultSplitAttributes
. - הגדרות המימדים המינימליות שונו לשימוש בפיקסלים שלא תלויים בדחיסות (dp) במקום בפיקסלים.
- בוצעה הוספה של
minHeightDp
עם ערך ברירת המחדל של 600dp. - הערך השתנה מ-
minWidth
ל-minWidthDp
עם ערך ברירת המחדל של 600dp. - הערך השתנה מ-
minSmallestWidth
ל-minSmallestWidthDp
עם ערך ברירת המחדל של 600dp. - בוצעה הוספה של
maxAspectRatioInHorizontal
עם ערך ברירת המחדלALWAYS_ALLOW
. - בוצעה הוספה של
maxAspectRatioInPortrait
עם ערך ברירת המחדל1.4
. - המחלקה הפנימית של
FinishBehavior
הוגדרה כדי להחליף קבועי התנהגות של סיום. - השינויים בנכס הוחלו על המחלקה המוצפנת
Builder
שלSplitPairRule
ו-SplitPlaceholderRule
.
- נוסף
- בוצעה החלפה של
SplitInfo#getSplitRatio()
בטקסטSplitInfo#getSplitAttributes()
כדי לספק מידע נוסף שקשור לפיצול.
פריסת חלון
- נוספה תמיכה בהקשר של ממשק משתמש שאינו פעילות ל-
WindowInfoTracker
. - נוסף הקשר ל-
WindowMetricsCalculator
של ממשק משתמש ללא פעילות.
שלבים להעברה
- כדי להפעיל הטמעת פעילויות להצגת פעילויות בפיצולים, האפליקציות חייבות להוסיף את המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
לתג<application>
של המניפסט:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
הפעולה הזו מאפשרת למערכת לבצע מראש אופטימיזציה של התנהגויות הפיצול באפליקציה. - יחס גובה-רוחב של
SplitInfo
- בודקים אם החלוקה הנוכחית בערימה:
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
נכסים:minWidth
ו-minSmallestWidth
משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
או פשוט לחלק אתminWith
בפיקסלים ב-displayMetrics#density
.
- יש להעביר את קבועי ההתנהגות של הסיום ל-
FinishBehavior
קבועי מחלקה דמויי טיפוסים בני מנייה (enum):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
העברות: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
לוקחים את הקבועיםFinishBehavior
דמויי enum. פרטים נוספים זמינים בקטע 'העברות SplitRule'.- צריך להשתמש בשיטת
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
כדי להציג פיצולים במכשירים בפריסה לאורך.
SplitPlaceholder.Builder
העברות:- מכיל רק פרמטרים מסוג
filters
ו-placeholderIntent
. מאפיינים אחרים עוברים למגדירים. לפרטים נוספים, אפשר לעיין במאמר בנושא 'העברות SplitPairRule.Builder'. setFinishPrimaryWithPlaceholder
לוקחת את הקבועיםFinishBehavior
דמויי טיפוסים בני מנייה (enum). פרטים נוספים זמינים בקטע 'העברות SplitRule'.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) - הגדרת ממשק ה-API של
WindowLayoutInfo
להקשר ניסיוני. (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
(Ide534)
- בנאי של
SplitRule
עכשיו ב-maxAspectRatioInPortrait/Landscape
. אפשר לפצל פעילויות רק כאשר יחס הגובה-רוחב של גבולות ההורה קטן או שווה ל-maxAspectRatio
המבוקש. (Ia5990)- שינוי
RuleController#parseRules
לערך סטטי (I785df) - שיפור ממשקי ה-API סביב הטמעת פעילות
- התאימו את השמות של ה-API – אפשר להשתמש בהוספה/הסרה של מספר מופעים:
registerRule
שינויים ב-addRule
unregisterRule
שינויים ב-removeRule
- מחליפים את
getSplitRules
בערךgetRules
כיActivityRule
אינו כלל פיצול - מוסיפים
RuleController#setRules
כדי להגדיר כמה כללים - יש לחלץ ממשקי API שקשורים לכללים מ-
SplitController
ל-SingletonRuleController
. אלו הם: addRule
removeRule
getRules
setRules
clearRules
parseRules
- חילוץ
#isActivityEmbedded
מ-SplitController
לסינגלטוןActivityEmbeddingController
. אלו הם: 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:
- יש להשתמש במידות מינימליות ב-DP במקום בפיקסלים עבור
SplitRule
. - ארגון מחדש (Refactoring) בשביל
SplitRule
Builder כדי להתייחס למידות מינימליות כאופציונליות. (I95f17)
- יש להשתמש במידות מינימליות ב-DP במקום בפיקסלים עבור
- העברת הקשר לאתחול
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 ניסיוניים הוסרו מממשקי API של
ActivityEmbedding
. - מסתירים את ה-constructor של
ActivityRule
כיBuilder
הוא הדרך המועדפת ליצור. - צריך להוסיף שיטה ניסיונית כדי לקבל את
WindowInsets
ב-WindowMetrics
. - צריך לעדכן את
SplitPlaceholderFinishBehavior
כדי לא לסיים את הגדרת ה-placeholder. השלמת ה-placeholder גרמה להתנהגות מבלבלת.
שינויים ב-API
- צריך להגדיר את ערך
isEmpty
כציבורי כדי להחליף אתisEmpty
כיפי. - שינוי השם של
ActivityStack
פעילויות פרמטר ל-activitiesInProcess
. (Ia5055) - צריך להסיר את
ActivityFilter#matchesClassName
ואתActivityFilter#matchesClassNameOrWildCard
כי הם מבלבלים. - מוסיפים את
ActivityFilter#componentName
abdActivityFilter#intentAction
כדי לאפשר למתקשר להבחין בין מסננים שונים (I41f22) - הסרת ממשקי ה-API של
@Deprecated
מה-API הניסיוני (I216b3) - הסרה של
@ExperimentalWindowApi
לממשקי API של הטמעת פעילות (I69ebe) - הסתרת ה-constructor של
ActivityRule
, צריך להשתמש ב-builder במקום זאת. (If4eb6) - אפשר להוסיף ממשקי API כדי לבדוק אם פעילות מסוימת שייכת ל
ActivityFilter
. (Ia43cf) - עדכון קובצי API כך שישקפו שינויים במחלקות
WindowMetrics
ו-WindowMetricsCalculatorCompat
(I667fe) - עדכון
ActivityEmbedding
של הנכס Javadoc and class name (Ia1386) - הוספת שמות תגים של נכסים מסוג
ActivityEmbedding
לשימוש בקובץ AndroidManifest.xml (Id1ad4) - נוספו ממשקי API חדשים
SplitPlaceholderFinishBehavior
ו-SplitPlaceholderRule.finishPrimaryWithPlaceholder
, שמחליפים את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 מכילה את התחייבויות אלה.
תכונות חדשות
- תיקון באג שבמסגרתו אפליקציה ברקע מפסיקה לשדר תכונות מתקפלות.
- מרחיבים את ה-API הניסיוני של ActivityEmbedding.
שינויים ב-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
כדי לחשב את מדדי windowMetric הנוכחי.
גרסה 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.
- הגדרת הפעילות כתלות מפורשת של שיטה עבור windowInfoTracker.
- ניתן להוסיף TestRule פשוט עבור windowMetricsCalculator כדי לתמוך במפתחים שמשתמשים ב-Robolectric.
שינויים ב-API
- תוספים לחילוץ (I25a5f)
- add isEmpty in ActivityStack (I5a4e6)
- משנים את השם של windowInfoRepository ל-windowInfoTracker.
- עדכן יחסי תלות של JavaScript/rxjava/testing לצורך התאמה. (I0da63)
- מוסיפים כלל לבדיקה של windowMetricsחשבון פשוט. (Ibacdb)
גרסה 1.0.0-beta03
27 באוקטובר 2021
androidx.window:window-*:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את התחייבויות אלה.
תכונות חדשות
- הוספת ממשקי API ניסיוניים להטמעת פעילות. גרסת הפריסה הראשונית מאפשרת להציג שתי פעילויות זו לצד זו.
שינויים ב-API
- הסרנו את ה-API הנוכחי שלWindowMetrics כי לא הצלחנו לספק אותו בצורה מדויקת. במקומו צריך להשתמש ב-WindowMetricsמחשבון (Icda5f)
- ממשק ה-API של התוספים עודכן. (Ica92b)
- הוספת ממשק עבור תכונה חדשה שמאפשרת ולהציג אותן זו לצד זו בתוך ההורה חלון המשימה. (I5711d)
- הסתרת את ה-constructors של windowMetrics ו-WinLayoutInfo, לכן צריך להשתמש בממשקי ה-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)
- יש להוסיף שיטת בדיקה כדי ליצור תכונה מתקפלת לבדיקה שמקבלת Rect. כך יהיה קל יותר לבצע בדיקה כשמשתמשים ב-Robolectric במקום בפעילות בפועל. (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 ל-WinInfoRepository ושנו את המחלקות או הקבצים המתאימים.
- ממירים את מדדי החלון הנוכחי לזרימה ב-windowInfoRepository כי הערך משתנה עם הזמן.
- שינוי השם של windowInfoRepoJavaAdapter ל-WinInfoRepoCallbackAdapter
- הוספת שיטת סיוע ליצירת אובייקטים של FoldingFeature לבדיקה
- לעדכן חבילות לכיתות קבוצתיות בהתאם לתכונה שבה הן תומכות.
שינויים ב-API
- שינוי השם של ActivityExt ל-Activityתוספים שינוי ממאגר למאגר. (I61a16)
- לעדכן חבילות של כיתות. (I23ae2)
- הסרת windowMetrics מ-windowInfoRepo (I24663)
- הסרת windowManager ושימוש ב-windowInfoRepo
- הגדרת windowBackend לשימוש פנימי. (I06d9a)
- המרת מדדי החלון ל'זרימה'.
- שינוי השם של מתאם 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 מכילה את התחייבויות אלה.
תכונות חדשות
- עוברים מקבועים של מספרים שלמים לטיפוסים של טיפוסים בני מנייה (enum) ללא גבולות.
- צריך להוסיף כלי לבדיקה כדי ליצור תכונות של קיפול לבדיקה.
שינויים ב-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)
- הוסר ה-builder
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 כשהטמעת ה-OEM ריקה. כך יהיה קל יותר להשתמש בספרייה ביותר מכשירים. מכיוון שממשקי ה-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#get maximumWindowMetrics() .
שינויים ב-API
- הוצאה משימוש של ממשקי API שיוסרו בגרסת האלפא הבאה (Ib7cc4)
- מתבצע עדכון של
ExtensionInterface
כדי לאשר פעילות בוטה הפניות. (I07ded) - הצגה של ממשק ה-API של windowMetrics. (I3ccee)
- הסרה של שיטות קריאה סינכרוניות מ-WindowManager (I69983)
- להבטיח שהחבילה ExtensionWindowBackend מוגנת. (Ied208)
תיקוני באגים
- צריך לעדכן את ממשקי ה-API של
ExtensionInterface
כדי לקבל הקשרים חזותיים. I8e827
תרומה חיצונית
- ממזגים את DeviceState ו-WinLayoutInfo כדי שיהיה קל יותר גישה לנתונים. (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 מכילה את התחייבויות אלה.
זוהי הגרסה הראשונה של ספריית מנהל החלונות.
תכונות חדשות
DisplayFeature
: ה-API החדש הזה מזהה שיבושים ביציבות המתמשכת משטחי מסך כמו צירים או קפליםDeviceState
: ה-API החדש הזה מציג את המצב הנוכחי של הטלפון מ- רשימה של מצבים מוגדרים (לדוגמה:CLOSED
,OPENED
,HALF_OPENED
, וכו')