ממשק המשתמש של הכתיבה
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(לעיון בכל חבילות ה-Compose)
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 25 בפברואר 2026 | 1.10.4 | - | - | 1.11.0-alpha06 |
מבנה
Compose הוא שילוב של 7 מזהי קבוצה ב-Maven בתוך androidx. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציונליות, ולכל אחת מהן יש קבוצה משלה של הערות לגבי הגרסה.
בטבלה הזו מוסברות הקבוצות ויש קישורים לכל קבוצה של הערות מוצר.
| קבוצה | תיאור |
|---|---|
| compose.animation | ליצור אנימציות באפליקציות Jetpack Compose כדי לשפר את חוויית המשתמש. |
| compose.compiler | שינוי פונקציות עם הערה @Composable והפעלת אופטימיזציות באמצעות פלאגין של Kotlin Compiler. |
| compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם למערכת העיצוב. |
| compose.material | אפשר לבנות ממשקי משתמש של Jetpack פיתוח נייטיב עם רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
| compose.material3 | אפשר ליצור ממשקי משתמש של Jetpack פיתוח נייטיב באמצעות רכיבי Material Design 3, הדור הבא של Material Design. Material 3 כולל רכיבים וערכות נושא מעודכנים ותכונות התאמה אישית של Material You, כמו צבעים דינמיים. הוא מתוכנן להיות תואם לסגנון החזותי החדש של Android 12 ולממשק המשתמש של המערכת. |
| compose.runtime | אבני בניין בסיסיות של מודל התכנות וניהול המצב של Compose, וזמן ריצה מרכזי לטירגוט של פלאגין מהדר Compose. |
| compose.ui | רכיבים בסיסיים בממשק המשתמש של Compose שנדרשים כדי ליצור אינטראקציה עם המכשיר, כולל פריסה, ציור וקלט. |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.compose.ui:ui:1.10.4" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.10.4") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.11
גרסה 1.11.0-alpha06
25 בפברואר 2026
androidx.compose.ui:ui-*:1.11.0-alpha06 מופץ. גרסה 1.11.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- הדגל
ComposeUiFlags.areWindowInsetsRulersEnabledהוחלף ב-APIComposeView.disableWindowInsetsRulers(). (Idcdb4, b/455590696) - העברנו את ה-feature flag הניסיוני
isAccessibilityShowOnScreenNestedScrollingEnabledשזמין רק ב-Android אל (I1c13a) - הוספת תמיכה בהליכה (I1c13a)
- דיווח על צמתי סמנטיקה מחוץ למסך שהם צאצאים של צמתי מיזוג גלויים חלקית במאגרי מידע שניתן לגלול בהם, כדי לשפר את חוויית המשתמש עם קוראי מסך ושירותי נגישות דומים (I71df9, b/434782764)
- כשהערך של
AndroidComposeUiFlags.isSharedClipboardManagerEnabledהוא True, אפשר לשתף מקרים שקשורים ללוח העתקה ב-ComposeViewsבאמצעותComposeViewContext(I65e2c) - הוסר
ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabled(I6e14a, b/455601894)
גרסה 1.11.0-alpha05
11 בפברואר 2026
androidx.compose.ui:ui-*:1.11.0-alpha05 מופץ. גרסה 1.11.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
-
AndroidComposeUiFlags.isSharedWindowInfoEnabledמעביר את פרטיWindowInfoאלComposeViewContext. השבתת הדגל משאירה אתWindowInfoבשליטתAndroidComposeView(I3b364) - מבנים נפוצים ב-
ComposeViewיועברו אלComposeViewContextהמשותף. זה השינוי הראשון שמעביר אתCoroutineContextאלComposeViewContext. אם הערך שלAndroidComposeUiFlags.isSharedComposeViewContextEnabledהוא true, הערכים משותפים באופן אוטומטי. אם הערך הוא False, הם לא משותפים. (I9364d, b/461566955) - הוספנו תמיכה במחוות במשטח המגע ובהמרה מאירועי קלט במשטח המגע לעכבר. בעקבות השינוי הזה, אירועים של מצביעים בלוח מגע ששולטים בסמן, כמו בטאבלטים או במחשבים ניידים, ידווחו בדרך כלל כמצביעי עכבר. כך ישתפרו ההתנהגות של המצביע, הגלילה והריחוף מעל פריטים. גם תנועות של הזזה ושינוי גודל ידווחו עם מידע נוסף שזמין בשינויים של אירועי מצביע, עם PointerEventType.Pan ו-PointerEventType.Scale חדשים שמציינים שהערכים האלה יוגדרו (Id071a, b/315527861, b/459831570).
תיקוני באגים
- שליחת
CONTENT_CHANGE_TYPE_CHECKEDלשינוי מאפיין שאפשר להפעיל או להשבית. (I6ac64, b/476894689, b/474538004, b/475754416)
External Contribution
- האפשרות
androidx.compose.ui.graphics.NativePainttypealias הוצאה משימוש. במקומה יש להשתמש ישירות ב-android.graphics.Paint(I6303c, b/477394763) - החלפת התוסף
Paint.asFrameworkPaint()בתוסףPaint.nativePaintכדי למנוע חשיפה של סוג הפלטפורמה ב-commonMainsourceset דרךtypealias(I6303c, b/477394763) - הוספת תמיכה במקשי תנועה (I1ff12)
NumPad
גרסה 1.11.0-alpha04
28 בינואר 2026
androidx.compose.ui:ui-*:1.11.0-alpha04 מופץ. גרסה 1.11.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את
TestCoroutineSchedulerכדי לאפשר שימוש ב-runCurrent()ולדאוג לגישה למופע של הכלי לתזמון משותף. (Iea662, b/254115946) - הוספנו תמיכה בהתקדמות הדרגתית בגלילה מקוננת בתגובה ל-
android.R.id.accessibilityActionShowOnScreenמתוך 'נגישות'. (Ib2723, b/431148846)
תיקוני באגים
- תוקנה המרה של מרחב צבעים מותאם אישית של RGB ב-Android. המרות של גווני אפור בהתאמה אישית בוצעו בצורה שגויה בין מרחבי צבעים מותאמים אישית של Compose ו-RGB של Android. (ebd45, b/377021410)
גרסה 1.11.0-alpha03
14 בינואר 2026
androidx.compose.ui:ui-*:1.11.0-alpha03 מופץ. גרסה 1.11.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הוסר הסימון
ComposeUiTestFlags.isStandardTestDispatcherSupportEnabled. ממשקי ה-API של גרסה 2,run*ComposeUiTestו-create*ComposeRule, משתמשים עכשיו ב-StandardTestDispatcherכברירת מחדל. כדי להמשיך להשתמש ב-UnconfinedTestDispatcher, אפשר להשתמש בגרסאות ה-API שהוצאו משימוש. עם זאת, מומלץ מאוד לעבור ל-API מגרסה 2 כדי לקבל שליטה טובה יותר על הביצוע של קורוטינות. (Iecc9c, b/455601592) - השקנו ממשקי API של
androidx.compose.ui.test.junit4.v2.create*ComposeRule. ממשקי ה-API החדשים האלה משתמשים ב-StandardTestDispatcherכברירת מחדל כדי לדמות בצורה טובה יותר את התנהגות הייצור, שבה קורוטינות מתווספות לתור במקום להיות מופעלות באופן מיידי. מידע נוסף זמין בהנחיות להעברת נתונים. (I1870e, b/254115946) - השקנו ממשקי API של
androidx.compose.ui.test.v2.run*ComposeUiTest. ממשקי ה-API החדשים האלה משתמשים ב-StandardTestDispatcherכברירת מחדל כדי לדמות בצורה טובה יותר את התנהגות הייצור, שבה קורוטינות מתווספות לתור במקום להיות מופעלות באופן מיידי. מידע נוסף זמין בהנחיות להעברת נתונים. (I4f782, b/254115946) - מעכשיו אפשר לשתף מבנים נפוצים ב-
ComposeView. אם הערך שלComposeUiFlags.isSharedComposeViewContextEnabledהוא true, הערכים משותפים באופן אוטומטי. אם הערך הוא False, הם לא משותפים. (I0d1b4, b/463540495, b/460468959, b/461503366, b/463641813)
תיקוני באגים
- תוקן באג שבו הסרת כל התוכן מ
ComposeViewלא מסירה את התוכן שצויר. (I8b382, b/299503084) - תיקון קריסה בהרכב שניתן להשהיה כשהוא מונפש באמצעות
LookaheadScope. (I7e649, b/469669851) - נפתרה בעיה שבה העברה של מחרוזות ארוכות מדי לשירות המילוי האוטומטי גרמה לקריסה. כדי למנוע את הבעיה הזו, הטקסט נחתך אוטומטית לאורך תקין לפני שהוא נשלח.
- תוקן באג שבו יציאה מהרחף יכולה לגרום לקליק בתנאים ספציפיים מאוד (a3d5a0f)
- תיקון של שליחת אירוע ריחוף של עט סטיילוס לבדיקות, והכנת בדיקות עכבר לבדיקות חדשות של עט סטיילוס. (9ca9bc9)
- הוספנו תמיכה בהזזת רכיבי ממשק משתמש באמצעות קלט מצביע. (d0742b0, b/BUD_ID)
- תוקן באג ב-Jetpack Compose
Popupשבו קואורדינטות מוחלטות של גבולות העוגן הועברו אלPopupPositionProvider, מה שגרם למיקומי חלונות קופצים שגויים. חישובים של מיקום חלונות קופצים מתבססים עכשיו על קואורדינטות יחסיות נכונות.(1f7edf,b/469940907)
גרסה 1.11.0-alpha02
17 בדצמבר 2025
androidx.compose.ui:ui-*:1.11.0-alpha02 מופץ. גרסה 1.11.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- ממשקי ה-API של
MultiModalInjectionScopeיציבים עכשיו. הם כוללים אתperformKeyInputואתperformRotaryScrollInput, ואת ממשקי ה-API הבסיסיים שלהם למפתחות ולסיבוב מפתחות. ההערה של הניסוי הוסרה. (Ie8bbc, b/261561237) - הוספנו ממשקי API לבדיקת משטח מגע. הם דומים לממשקי ה-API לבדיקת העכבר, ומזריקים אירועים שמדמים את ההתנהגות של משטח מגע בטאבלט או במחשב נייד. נקודות הכניסה העיקריות הן
SemanticsNodeInteraction.performTrackpadInputו-MultiModalInjectionScope.trackpad(I2ce67), b/432326139.
תיקוני באגים
- תוקנה יכולת הפעולה ההדדית של קלט גלילה של גלגל העכבר כך שהקלט ינוצל רק אם הוא נוצל בכתיבה, ולא אם הוא נשלח בכתיבה. (I5e0c4),
גרסה 1.11.0-alpha01
3 בדצמבר 2025
androidx.compose.ui:ui-*:1.11.0-alpha01 מופץ. גרסה 1.11.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוסרה ההגדרה
isSemanticAutofillEnabledUI flag כי המילוי הסמנטי האוטומטי הופעל כברירת מחדל. (I849cf, b/455587954) - השתנה האופן שבו השיטה traversable find
findNearestAncestorמגלה צמתים רלוונטיים. מעכשיו, נציגים מאותו סוג (NodeKind) יהיו גלויים במהלך המעבר. השינוי מוגן על ידי הדגלisTraversableDelegatesFixEnabled. (Ia3165, b/280804097) - הוספת מיפוי
TextEntryKeyעבורANI#isTextEntryKey(Ifde7b, b/399540654) -
Modifier.onFirstVisible()הוצא משימוש כי ההתנהגות שלו מטעה והוא לא תמיד פועל בהתאם לחוזה שמוצהר בשם. לדוגמה, אם מוסיפים אותה לפריט שלLazyColumn, המערכת תקרא לקריאה החוזרת הזו בכל פעם שהפריט הזה יהפוך לגלוי אחרי גלילה. זה לא מה שמשתמשים במאפיין הזה עם השם הזה ציפו לקבל. מומלץ להשתמש ב-Modifier.onVisibilityChanged()במקום זאת ולעקוב באופן ידני אחרי הנראות של הפריסה, בהתאם לדרישות של תרחיש השימוש הספציפי. (Ia7095, b/447601783) - הוספנו את
MeasuredSizeAwareModifierNode, שנדרש כשצריך קריאה חוזרת (callback) שלonRemeasured(). במקום להשתמש ב-LayoutAwareModifierNodeכללי יותר כשלא צריך קריאות חוזרות אחרות, צריך להשתמש בממשק הזה ישירות. (If6fb0)
גרסה 1.10
גרסה 1.10.4
25 בפברואר 2026
androidx.compose.ui:ui-*:1.10.4 מופץ. גרסה 1.10.4 מכילה את השמירות האלה.
גרסה 1.10.3
11 בפברואר 2026
androidx.compose.ui:ui-*:1.10.3 מופץ. גרסה 1.10.3 מכילה את השמירות האלה.
גרסה 1.10.2
28 בינואר 2026
androidx.compose.ui:ui-*:1.10.2 מופץ. גרסה 1.10.2 מכילה את השמירות האלה.
גרסה 1.10.1
14 בינואר 2026
androidx.compose.ui:ui-*:1.10.1 מופץ. גרסה 1.10.1 מכילה את השמירות האלה.
תיקוני באגים
- תיקון קריסה בהפעלה של קומפוזיציה שאפשר להשהות כשהיא מונפשת באמצעות
LookaheadScope(I7e649, b/469669851) - תוקן באג ב-Jetpack Compose
Popupשבו קואורדינטות מוחלטות של גבולות העוגן הועברו אלPopupPositionProvider, מה שגרם למיקומי חלונות קופצים שגויים. חישובים של מיקום חלונות קופצים מתבססים עכשיו על קואורדינטות יחסיות נכונות.(1f7edf,b/469940907)
גרסה 1.10.0
3 בדצמבר 2025
androidx.compose.ui:ui-*:1.10.0 מופץ. גרסה 1.10.0 מכילה את השמירות האלה.
גרסה 1.10.0-rc01
19 בנובמבר 2025
androidx.compose.ui:ui-*:1.10.0-rc01 מופץ. גרסה 1.10.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- שליחה נכונה של קריאות חוזרות (callback) של
visibilityChangedעם הערך false כש-minDurationMsלא אפס. (2ac08b8, b/456384555) - לא להתקשר חזרה אל
onVisibilityChangedאם הצומת לא גלוי בהתחלה. (3969e8d, b/447364998)
גרסה 1.10.0-beta02
5 בנובמבר 2025
androidx.compose.ui:ui-*:1.10.0-beta02 מופץ. גרסה 1.10.0-beta02 מכילה את השמירות האלה.
גרסה 1.10.0-beta01
22 באוקטובר 2025
androidx.compose.ui:ui-*:1.10.0-beta01 מופץ. גרסה 1.10.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- הוספת אופטימיזציה לשליחת שינוי המיקוד. אפשר להשבית את האפשרות הזו באמצעות
isOptimizedFocusEventDispatchEnabled = false(I919fb, b/449228515) - כל ממשקי ה-API של מגע עקיף עודכנו כך שישתמשו בשם indirect pointer APIs כדי להתאים לממשקי ה-API של קלט מצביע. (I238ce, b/451607214)
- הפונקציות
TextDirection,TextAlign,Hyphensו-FontSynthesisvalueOfמחזירות עכשיו את השגיאהIllegalArgumentExceptionכשהן מקבלות ערך לא ידוע. (I07c67) - מעדכנים את
CompositionDataTree.makeTreeכדי להעביר ערכי ברירת מחדל במקום פונקציית wrapper. (Id64a6, b/445229688) - ממשקי ה-API של כללי הבדיקה
createComposeRule,createAndroidComposeRuleו-createEmptyComposeRuleשמקבלים את הפרמטרeffectContextהם יציבים, וערך ברירת המחדל של הפרמטר הואEmptyCoroutineContext. (If400c, b/450540702) - השם של
UnplacedStateAwareModifierNodeשונה לUnplacedAwareModifierNode(I6a551, b/449719932) - ביטול האופטימיזציה של לכידת התוכן (Ic000b, b/442364065)
- נוסף feature flag
ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabled. היא מאפשרת אופטימיזציה של הביצועים, כך שבקשות לקואורדינטות כמוLayoutCoordinates.positionInRoot()משתמשות בהיסטים ששמורים במטמון שכבר יש לנו ב-RectManager, במקום לעבור על כל העץ בכל קריאה. (Ieaadc)
תיקוני באגים
-
PlaceholderSpanמשתמש עכשיו בצורה נכונה בשינוי גודל לא לינארי של גופנים (Id2ead, b/324462728) - אפשר להשתמש ב-
ViewCompatכדי לבצע קבועים של משוב פיזי שנתמכים ברמת הפלטפורמה, בהסתמך על תמיכת הגיבוי שלה בקבועים חדשים יותר. (Ib5a00)
גרסה 1.10.0-alpha05
8 באוקטובר 2025
androidx.compose.ui:ui-*:1.10.0-alpha05 מופץ. גרסה 1.10.0-alpha05 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג שגרם לכך שפריטים קופצים מוטבעים הוצבו בצורה שגויה בחלק העליון של המסך. עכשיו הם מוצבים בצורה נכונה בפריט הקופץ שכולל אותם. (Id4603, b/191279752)
- תוקנה בעיה שקשורה להעברת המיקוד עם תצוגות אחרות בהיררכיה. (I95223, b/446028624)
- תוקנו שדות עם פרמטרים מוטבעים שחסרים בכלי לבדיקת קוד ב-lambda שנוצרו על ידי Kotlin 2.2.20 (I9855d, b/447110005)
- תוקן שם הצללה של משאבי מילוי אוטומטי בין מודולים של UI ו-foundation (I5da5a)
External Contribution
- האובייקט
UiModesמשנה את השם ל-AndroidUiModes כדי לשקף שהקבועים שלו נלקחים מ-Android API. (Ia0a77)
גרסה 1.10.0-alpha04
24 בספטמבר 2025
androidx.compose.ui:ui-*:1.10.0-alpha04 מופץ. גרסה 1.10.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- הגרסה של כלל הבדיקה Compose שמקבלת פרמטר
CoroutineContextהועברה לגרסה יציבה. ההערה 'ניסיוני' הוסרה, ומפתחים כבר לא צריכים להביע הסכמה לשימוש ב-API הזה. (I74e6e) - הכרטיס
ComposeUiFlags.isRectTrackingEnabledהוסר. הלוגיקה הזו לא תמיד מופעלת. (Id78df) - הוצאה משימוש של עומס יתר מוטבע של
Updater#setכי הערך שסופק הוכנס לתיבת אריזה יותר מדי פעמים (Id679e) - סימון המאפיין הסמנטי
onAutofillTextכמאפיין שיצא משימוש. (I6f81c) - השקנו את
UnplacedStateAwareModifierNode. הוא מספק קריאה חוזרת (callback) שנקראת כשהפריסה שהוצבה קודם כבר לא מוצבת. (I8fdd8, b/309776096) - תיקנתי את התיעוד של
RetainObserver.onRetainedוהוספתי אתRetainObserver.onUnused, שמשקף אתRememberObserver.onAbandoned. (Ia6fc5) - נוספה
onVisibilityChangedNode(), שמפיקהModifier.Node, שמשמשת אתModifier.onVisibilityChanged()באמצעות הענקת גישה, מה שמאפשר להרחיב את הפונקציונליות הזו בModifier.Nodeבהתאמה אישית. (I70d84, b/443001320)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שהתוכן המוצג בשורה לא עבר עיבוד כשהוא ממוקם בשורה האחרונה של טקסט עם סימן של השמטה, למרות שה-placeholder קדם לאזור עם סימן ההשמטה. (I76aaf, b/441829208)
גרסה 1.10.0-alpha03
10 בספטמבר 2025
androidx.compose.ui:ui-*:1.10.0-alpha03 מופץ. גרסה 1.10.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- שינוי השם של
DelegatableNode.invalidateLayoutForSubtreeל-DelegatableNode.invalidateMeasurementForSubtree. (I94257, b/430106107) - הסרת התאמה מיותרת של
isInHiddenAccessibilitySubtree. (I4476c, b/443792965) - הוספנו עכשיו אפשרות ליצור עקבות מחסנית (stack traces) של קומפוזיציה שמבוססות על מפתח קבוצה, שמופעלות כברירת מחדל בכל האפליקציות שעברו מיניפיקציה. מיפוי ה-proguard של העקבות האלה ייווצר על ידי הפלאגין של Compose compiler Gradle החל מ-Kotlin 2.3.0. (Ifbcb5)
-
Modifier.skipToLookaheadSizeמשתמש עכשיו ב-lambda שמופעל כברירת מחדל, ומאפשר דילוג על גודל רק כשהמעבר המשותף פעיל, כמו ב-Modifier.skipToLookaheadPosition. (Ibe0f5, b/432485585) -
ComposeUiFlags.isOutOfFrameDeactivationEnabledמוסרת והפונקציונליות הזו מופעלת תמיד. (I421ed) - העברת פונקציות ליצירת מופעים של
FillableDataלאובייקט נלווה. במקום להתקשר אלFillableData(value), אפשר להשתמש בשיטות החדשות של הגדרות היצרן:FillableData.createFrom(value). (I2e200, b/441719650) - הוספנו
BeyondBoundsLayoutModifierNodeצומת חדש של Modifier כדי לבצע פריסה מעבר לגבולות לחיפוש מיקוד. (I39be1, b/416133658) -
FocusTargetModifierNode.requestFocus()שולח את המיקוד לאחד מהצאצאים שלו כשהוא עצמו לא ניתן למיקוד. התקופה הזו נקבעה בהתאם ל-FocusRequester.requestFocus()ול-FocusRequesterModifierNode.requestFocus(). אם אתם לא צריכים את ההתנהגות הזו, אתם יכולים להגדיר את הדגלComposeUiFlags.isRequestFocusOnNonFocusableFocusTargetEnabledכ-false באפליקציה. (Icca5c, b/436863604) - הוספת גודל חלון מבוסס-DP ב-
WindowInfo(I9322b, b/424442112) - הוסר סימון בדגל
isNestedScrollDispatcherNodeFixEnabled. (If451a) - הוספנו תמיכה בערכי תאריך במילוי אוטומטי ב-API
FillableData. val dateMillisValue: Longנוסף כדי לאחזר מידע על תאריכים, ונוסף בנאיFillableData(dateMillisValue: Long)תואם כדי ליצור מופעים שלFillableDataשמבוססים על תאריכים. (Id072a)
External Contribution
- אובייקט
UiModesנוסף כדי להצהיר על קבועים שמשמשים להערהUiMode(I03cb8)
גרסה 1.10.0-alpha02
27 באוגוסט 2025
androidx.compose.ui:ui-*:1.10.0-alpha02 מופץ. גרסה 1.10.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- עדכון
FillableDataכדי לתמוך ברכיבים שאינם טקסטואליים, כמו מתגים ורשימות, כולל ערכים בוליאניים ומספריים בתוךFillableDataובוני מפעל ליצירת מופעים בוליאניים ורשימתיים שלFillableDataשמתורגמים ל-AutofillValueשל הפלטפורמה. נוספים גם הפעולה והמאפיין הסמנטי הרלוונטיים. (Ia8105, Icc5cf) - במצב ללא מגע, מערכת התצוגה מקצה מיקוד ראשוני או מיקוד שמוגדר כברירת מחדל לאחד מהפריטים שניתן להתמקד בהם במסך. התכונה הזו מתווספת לכלי הכתיבה, ואפשר להפעיל אותה על ידי הפעלת
ComposeUiFlags.isInitialFocusOnFocusableAvailable. (Ib9178) - הוסר סימון בדגל
isPointerInteropFilterDispatchingFixEnabled. (Iaa589) - הוסר סימון בדגל
isNestedScrollInteropPostFlingFixEnabled. (I2a756) - הוספה של התאמה סמנטית של
isHiddenFromAccessibility()ושלisInHiddenAccessibilitySubtree(). (I9f5a1) - נוספה
runCurrent()ל-MainTestClockכדי להפעיל את כל המשימות שמועד הביצוע שלהן חלף בתזמן הבסיסי. הסיבה לכך היא תמיכה בהרצת בדיקות ב-StandardTestDispatcher, שבה משימות מתווספות למתזמן במקום להתבצע באופן מיידי כשההשהיה שלהן היא 0 אלפיות השנייה. כדי להגדיר בדיקה שתשתמש ב-StandardTestDispatcher, צריך ליצורComposeTestRuleולהעביר אליוStandardTestDispatcher. כברירת מחדל, הבדיקות מופעלות ב-UnconfinedTestDispatcher, ובמקרה כזה לא צריך לקרוא ל-runCurrent(). - נוספה תמיכה בהרצת בדיקות ב-
StandardTestDispatcher. בעבר, מסגרת הבדיקה הוגדרה (ועדיין מוגדרת) באמצעותUnconfinedTestDispatcher, ששונה מסביבת ייצור בדרכים עדינות. עכשיו אפשר לשנות את ההגדרה הזו על ידי יצירתStandardTestDispatcherמשלכם והוספתו ל-effectContextכשיוצרים אתComposeTestRule(או כשמתקשרים אל runComposeUiTest ). (I334d0, b/254115946) - מעדכנים את הקוד ליצירת עץ של צמתים מ-
SlotTree. (I997d3)
תיקוני באגים
- ממשק המשתמש של Compose מתקין עכשיו את
RetainScopesב-Android, עם מודעות למחזור החיים. ההתנהגות שמוגדרת כברירת מחדל היא עכשיו לשמור את הערכים שמוגדרים כ-retainגם אחרי שינויים בהגדרות. (Id4a09, b/177562901)
External Contribution
- הוספנו ל-
VelocityTrackerאת היכולת לחשב את המהירות של מצביע על סמך אירועי מצביע שעוקבים אחרי התנהגות ספציפית לפלטפורמה. (I621e8)
גרסה 1.10.0-alpha01
13 באוגוסט 2025
androidx.compose.ui:ui-*:1.10.0-alpha01 מופץ. גרסה 1.10.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- אם תלחצו על העכבר או על לוח המגע ב-
ComposeView, המיקוד יוסר אוטומטית אם הלחיצה לא תתרחש בגבולות הצומת שבמיקוד. התוצאה היא חוויית משתמש של 'הקשה לביטול המיקוד', שהיא צפויה יותר מההתנהגות הנוכחית כשמשתמשים במכשירים עם קלט מצביע. אפשר לבטל את ההסכמה להתנהגות הזו באמצעות API חדש שלAbstractComposeView.isClearFocusOnPointerDownEnabled. (I6322b, b/282963174) - הוספנו ממשק
FillableDataלתמיכה בסוגים שונים של רכיבי מילוי אוטומטי, בנוסף לטקסט. (If9bd2) - API חדש שמאפשר להפעיל ולהשבית באופן דינמי רכיבים משותפים, וגם מאפשר לקחת בחשבון אם כבר מתבצע מעבר של רכיב משותף. API חדש להגדרת גבולות יעד חלופיים כשאלמנט היעד המשותף מושמד במהלך המעבר. API חדש לקבלת
LayoutCoordinatesשלLookaheadScope. (I18dd4, b/409819304, b/395670637) - הוספנו את הדגל
isNestedScrollInteropIntegerPropagationEnabledכדי לשלוט בניסוי של שליחת מספרים שלמים נכונים ל-nested scroll interop. (If8316) - נוספה
requestFocusForChildInRootBounds()ל-DelegatableNodeכדי להעביר את המיקוד לצאצא שחופף למלבן הנתון. (I001ef) - הוסרו הדגלים
isOnScrollChangedCallbackEnabled, isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled, isFlingContinuationAtBoundsEnabled, isAutomaticNestedPrefetchEnabled, DragGesturePickUpEnabled, isPointerInteropFilterDispatchingFixEnabled, isNestedScrollInteropPostFlingFixEnabled, isNestedScrollDispatcherNodeFixEnabled(I36c18) - הוספנו הערה
@CheckResultבפונקציות של איתור וסימוןSemanticsNodeכדי לאכוף את השימוש בערכים שהוחזרו. (I6f86e, b/201652748) - שיפור הביצועים של תהליך לכידת התוכן (I3c7c0)
- הוספנו את
CompositionLocalשאפשר להשתמש בו כדי לשנות את המברשת של ההדגשה של מילוי מוצלח ב'מילוי אוטומטי'. (I52329) - הוספנו ממשק חדש שניתן לאינטרפולציה, שמאפשר אינטרפולציה אוטומטית בין סוגים שונים, בהנחה שסוג אחד יודע איך להמיר מסוג אחר. הממשק הזה משמש בכמה סוגי קומפוזיציות, כמו Brush (מברשת) ו-Shape (צורה), אבל אפשר להשתמש בו גם באופן חיצוני. (I58eab)
- עכשיו, הרכיב Scrollable תומך טוב יותר באירועי גלילה דו-ממדיים של גלגל העכבר. השקנו API חדש לבדיקות שיעזור לכם לבדוק תרחישי שימוש ב-
MouseInjectionScope. הוספנו גם עומס יתר חדש לשיטות גלילה ב-MouseInjectionScopeודגל לשליטה בהתנהגות החדשה שנקראisMouseWheel1DAxisLockingEnabled(I136df) - הוספת
DeviceConfigurationOverridesלסוג ולמצב של המקלדת, לסוג ולמצב של הניווט, למצב של מסך המגע ולסוג של מצב ממשק המשתמש (I282f0) - נוסף
LineHeightStyle.Modeחדש בשםTight. המצב הזה עוזר לאכוף גובה שורה קטן יותר, גם אם יכול להיות שהוא יחתוך גליפים גבוהים יותר. (Id3849) - ל-
BaselineShiftיש עכשיו ערך לא מוגדר כדי למנוע את הבעיה של boxing. ל-BaselineShift,Hyphens,LineBreak,TextAlignו-TextDirectionיש עכשיו פונקציות עזרisSpecified. ל-Hyphens,TextAlign,TextDecorationו-TextDirectionיש עכשיו שיטות שלvalueOf()וערכים שמאפשרות סדרות/ביטול סדרות יעילים. (I8d44c) - נוסף ממשק חדש לשיטת
getDisplayNameכדי לאפשר שמות תצוגה מותאמים אישית למופעים של פרמטרים בתצוגה מקדימה. (I19bdf, b/241699422) - כשמשווים ערכי Dp לערך Unspecified באמצעות less-than או greater-than, תמיד מוחזרת עכשיו התוצאה false. השימוש ב-
Dp.compareTo(Unspecified)תמיד מחזיר 0. אם מגדירים את הדגלComposeUiUnitFlags.isDpCompareToChangedכ-false, הפונקציהDp.compareTo()חוזרת להתנהגות הקודמת שלה, שבה השוואה של Unspecified עם less-than ו-greater-than לא תמיד מחזירה false, וההתנהגות שלcompareTo()עם Unspecified זהה להתנהגות שלFloat.compareTo(). (Ifa88b, b/429221319)
תיקוני באגים
- העברת ברירת המחדל של minSdk מ-API 21 ל-API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
- פתרנו בעיה שמנעה את היצירה של
AndroidComposeViewsחדשים בזמן מעבר. (I2e23e, b/340894487, b/287484338) - תוקן באג בצבע כשמשתמשים ב-vector drawable שמשתמש בצבע אחד, והערך של
fillColorהוא לא אטום לחלוטין ולא שקוף לחלוטין. (I3b041, b/328677973) - תוקנה בעיה שבה סמלים שנטענו באמצעות
painterResourceעם צבעים ספציפיים לעיצוב לא התעדכנו כשבוצעו שינויים בעיצוב. (I85ea0, b/424416571) - הוספת סמנטיקה של
onFillDataו-fillableData(I45d9e) - קידוד מצב ספציפי לפלטפורמה מופעל עכשיו תמיד ב-
StateRestorationTester. כך מתאימים את התנהגות הבדיקה לשחזור אמיתי של מצב האפליקציה, כמו Parcelization ב-Android. (I38211, b/408154192, b/382294247) - תוקנו קריסות שהתרחשו מדי פעם כשביקשו להתמקד. (57b31a11, b/431111149)
גרסה 1.9
גרסה 1.9.5
19 בנובמבר 2025
androidx.compose.ui:ui-*:1.9.5 מופץ. גרסה 1.9.5 מכילה את השמירות האלה.
גרסה 1.9.4
22 באוקטובר 2025
androidx.compose.ui:ui-*:1.9.4 מופץ. גרסה 1.9.4 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה הבעיה שבה תוכן טקסט מוטמע נעלם אם הוא נמצא בשורה האחרונה של טקסט רב-שורה עם סימן של השמטה, גם אם התוכן המוטמע לא נמצא באזור ההשמטה. (I76aaf, b/441829208)
- תוקנה בעיה שבה קריאות חוזרות (callback) לשינוי
onLayoutRectChangedלא תמיד נקראו כש-debounceMillisלא היה אפס. (72aba47, b/445324854)
גרסה 1.9.3
8 באוקטובר 2025
androidx.compose.ui:ui-*:1.9.3 מופץ. גרסה 1.9.3 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג שגרם לכך ששינויים ב-
onVisibilityChanged/onFirstVisible/onLayoutRectChangedלא קיבלו קריאות חוזרות אם לפריסה שהועברה היו יותר מ-170 צאצאים. (4f2fdd, b/445356774)
גרסה 1.9.2
24 בספטמבר 2025
androidx.compose.ui:ui-*:1.9.2 מופץ. גרסה 1.9.2 מכילה את השמירות האלה.
תיקוני באגים
- התג
Modifier.onVisibilityChanged()מופעל עכשיו בצורה נכונה כשמנתקים צומת או משתמשים בו מחדש. (Ic5ce20) -
Modifier.onVisibilityChanged()ו-onLayoutRectChanged()מטפלים עכשיו בצורה נכונה בפריסות של רכיבי parent באמצעותplaceWithLayer()כדי למקם רכיבי children. (Ia05ac9) - במקרים מיוחדים כמו הסרה של שכבה או של שינוי בשכבה, או עדכון של מאפייני שכבה, צריך לשלוח הודעה מתאימה לגבי
Modifier.onVisibilityChanged()ו-onLayoutRectChanged(). (Ia05ac)
גרסה 1.9.1
10 בספטמבר 2025
androidx.compose.ui:ui-*:1.9.1 מופץ. גרסה 1.9.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג בצבע כשמשתמשים ב-vector drawable שמשתמש בצבע אחד, והערך של
fillColorהוא לא אטום לחלוטין ולא שקוף לחלוטין. (I3b041, b/328677973)
גרסה 1.9.0
13 באוגוסט 2025
androidx.compose.ui:ui-*:1.9.0 מופץ. גרסה 1.9.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.8.0
- שינויים חשובים בגרסה 1.9.0 מפורטים בפוסט הזה בבלוג
- בדיקות ה-Lint שמגיעות עם Compose דורשות עכשיו גרסת AGP מינימלית של 8.8.2. אם אין לכם אפשרות לשדרג את AGP, אתם יכולים לשדרג את Lint בנפרד באמצעות
android.experimental.lint.version=8.8.2(או גרסה חדשה יותר) בקובץgradle.properties. כדי להריץ בדיקות lint של Compose בתוך סביבת הפיתוח המשולבת (IDE), נדרשת גרסה Android Studio Ladybug או גרסה חדשה יותר. - שינוי שעלול לשבור את התאימות לאחור: הצמתים של מקש הצירוף
graphicsLayerמטמיעים עכשיו אתSemanticsModifierNode. הדבר עלול לגרום להוספה שלSemanticsNodesחדשים לעץ הסמנטי, ולכן להוביל לכשלים בבדיקות שמניחות הנחות לגבי המבנה של עץ הסמנטי. לדוגמה, בדיקות שמשתמשות ב-onChild, ב-onParent, ב-onSiblingובשיטות דומות אחרות כדי ליצור הצהרות יכולות להיכשל אם מתווסף צומת חדש בין הצומת הנוכחי לצומת היעד. הדרך המומלצת לפתור את הכשלים האלה היא להוסיףtestTagישירות לצומת היעד. גישה אחרת היא להשתמש בכלי התאמה פחות מחמיר, כמוonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")). (I638b5)
גרסה 1.9.0-rc01
30 ביולי 2025
androidx.compose.ui:ui-*:1.9.0-rc01 מופץ. גרסה 1.9.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה סמלים שנטענו באמצעות
painterResourceעם צבעים ספציפיים לעיצוב לא התעדכנו בשינויים בעיצוב המערכת. (I85ea0, b/424416571) - תוקנו שגיאות ב-API 21(Lollipop) וב-API 28(Pie) שבהן שמות של שיטות גרפיות חשובות שונו במהלך האופטימיזציה. (Iebf99, b/425120571, b/420462749)
- מוודאים שהשינויים החדשים שהוספתם ל-
onLayoutRectChangedיופעלו בהתחלה. (l9aa91), (lb348a) - תוקנה בעיה שגרמה לביטול תוקף שגוי של מטמון אופסט, וכתוצאה מכך לקריאה של משני
onLayoutRectChangedעם קואורדינטות שגויות (ibd4cd), (lddc57) - תיקון של פריסות מסובבות או מוטות שמקבלות קואורדינטות שגויות באמצעות משני
onLayoutRectChanged(lddc57, b/426750475)
External Contribution
- תוקנה בעיה שגרמה להיעלמות של פריטים ב-
dragAndDropSourceכשגוללים.LazyListתודה, ויקטור רנדינה! (dc3bcd3, b/425894792)
גרסה 1.9.0-beta03
16 ביולי 2025
androidx.compose.ui:ui-*:1.9.0-beta03 מופץ. גרסה 1.9.0-beta03 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה צללים פנימיים מטושטשים באופן אחיד לא זזו בצורה תקינה עם היסט.
גרסה 1.9.0-beta02
2 ביולי 2025
androidx.compose.ui:ui-*:1.9.0-beta02 מופץ. גרסה 1.9.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- שינוי אובייקט נלווה לניסיוני כדי להתאים לסיווג. (I8452a)
- הוסרה
isTrackFocusEnabledהתכונה הניסיונית (I003fd)
תיקוני באגים
- אם אף
WindowInsetsלא חורג מהתוכן שלComposeView, לא מסופקים ערכים שלWindowInsetsRulers. (I71221)
גרסה 1.9.0-beta01
18 ביוני 2025
androidx.compose.ui:ui-*:1.9.0-beta01 מופץ. גרסה 1.9.0-beta01 מכילה את השמירות האלה.
שינויי תוכנה שעלולים לגרום לכשלים
- צמתי הצירוף
graphicsLayerמיישמים עכשיו אתSemanticsModifierNode. הדבר עלול לגרום להוספה שלSemanticsNodesחדשים לעץ הסמנטי, ולכן להוביל לכשלים בבדיקות שמניחות הנחות לגבי המבנה של עץ הסמנטי. לדוגמה, בדיקות שמשתמשות ב-onChild, ב-onParent, ב-onSiblingובשיטות דומות אחרות כדי ליצור הצהרות יכולות להיכשל אם מתווסף צומת חדש בין הצומת הנוכחי לצומת היעד. הדרך המומלצת לפתור את הכשלים האלה היא להוסיףtestTagישירות לצומת היעד. גישה אחרת היא להשתמש בכלי התאמה פחות מחמיר, כמוonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")). (I638b5)
שינויים ב-API
- השינוי של
ShadowContextלממשק סגור (I3ce40) - נוספה דרך ליצור אירוע מגע עקיף (לצורך בדיקה) בין מודולים (I22e4c)
- הופך את
IndirectTouchEvent.nativeEventלניסיוני. (I6fda5) - משנה את פלטפורמת ה-API בהתאם למשוב של מועצת ה-API. (Ibf378)
- הסרת הקבוע
FrameRateCategory.NoPreference. שינוי השם שלModifier.requestedFrameRateלModifier.preferredFrameRate. (I2f976) WindowInsetsRulers: שינה אתrulersIgnoringVisibilityלמקסימום. הפונקציהgetDisplayCutoutBounds()שונתה והפכה לפונקציית הרחבה שלPlacementScope. הערך שלWindowInsetsAnimationPropertiesהשתנה ל-WindowInsetsAnimationוהערך שלgetAnimationProperties()השתנה ל-getAnimation(). (I3816f)- הכיתה
ShadowParamsשונתה לShadow(I11cca) - שינוי החבילה של frame rate API מ-
androidx.compose.ui.uiל-androidx.compose.ui(I8994e) - הקוד
InsetsRulersהועבר לקוד משותף עם השםWindowInsetsRulers. פישטנו את ה-API כך שכל התמונות הממוזערות הןWindowInsetsRulers. מאפייני אנימציה שלא קשורים לסרגלים חולצו למחלקהAnimationProperties. אפשר להשתמש ב-WindowInsetsRulers.innermostOf()כדי למזג כמהWindowInsetsRulers. (I2f0c6, b/415012444) - נוסף API של כלי לניתוח מידע על המקור שנוסף על ידי מהדר Compose. (Iceaf9, b/408492167)
תיקוני באגים
- הדגל של
isGetFocusedRectReturnEmptyEnabledהוסר עכשיו, אחרי שהתכונה אומתה במלואה. (Ife722) - תוקן באג ב-
performScrollToNode, שבחלק מהמקרים לא הגיע לצומת היעד. אחרי התיקון הזה, ההודעה תמיד תגיע לצומת היעד במקרים האלה. תופעת לוואי של השינוי הזה היא שעכשיו יכול להיות שמיקום הגלילה המדויק בסוף הפעולה יהיה שונה, וזה משפיע על בדיקות צילומי מסך ועל בדיקות שמניחות הנחות לגבי מיקום הגלילה המדויק. (I2c8a1)
גרסה 1.9.0-alpha04
4 ביוני 2025
androidx.compose.ui:ui-*:1.9.0-alpha04 מופץ. גרסה 1.9.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו ממשקי API של משני מאפיינים ליצירת צללים שניתנים להתאמה אישית. (I2058d, b/160665122)
- מוסיפים מאפיין
SemanticsModifierNode.isImportantForBoundsשקובע אם צריך לקחת בחשבון את הצומת בחישוב הגבולות. ערך ברירת המחדל של המאפיין הוא true, ואפשר להגדיר אותו כ-false כדי לציין שלא צריך להתחשב בצומת לצורך הגדרת הגבולות. (I7ebec) - מוסיפים
SemanticsPropertyKeyפונקציית factory להצהרה על מאפייני סמנטיקה ספציפיים ל-Android שזמינים כתוספים לנגישות שנחשפים באמצעותAccessibilityNodeInfo.getExtras. (I2ed51) - השימוש ב-
ComposeUiFlags.isRemoveFocusedViewFixEnabledהוסר והדגל הוצא משימוש. (I50328) - הוספנו מסגרת חדשה של צללים שניתנת להתאמה אישית. היא כוללת את
DropShadowPainterואתInnerShadowPainter, וגם את התלויות שלDropShadow/InnerShadow. התשתית של העותקים הווירטואליים משותפת, כך שאפשר לשתף את אותם עותקים וירטואליים שנוצרו בכמה מוקדים טלפוניים בלי ליצור מחדש את העותקים הווירטואליים n פעמים. (I24f7a, b/160665122) - הצגת
CompositeShaderו-CompositeShaderBrushשיוצרים תוצאה מורכבת בין שני shaders. מוסיפים גם אתShaderBrush#transformכדי להגדיר מטריצת טרנספורמציה לשיידר. (I2621a, b/160665122)
תיקוני באגים
- תוקן באג ב-
NestedScrollInteropConnectionשגרם לכך ששיטות ההטלה היו בסדר הלא נכון ביחס לתצוגות. (I56ad4) - בעבר, דיאלוגים שהוצגו במסך מלא לא הוצגו באזור החיתוך של המסך. הבאג הזה תוקן, כך שתיבות דו-שיח עם
decorFitsSystemWindows = falseו-usePlatformDefaultWidth = falseיכולות להשתמש באזור המגרעת במסך. (I9e975) - תוקן באג שגרם לכך שסימן המיקוד הירוק של
TalkBackלא נמשך אחרי שהוא הופעל בזמן שאפליקציית ההלחנה הייתה ברקע. (Ifd12a)
גרסה 1.9.0-alpha03
20 במאי 2025
androidx.compose.ui:ui-*:1.9.0-alpha03 מופץ. גרסה 1.9.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הדגל
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabledגורם לכך שאם אין שום דבר שאפשר להתמקד בו ב-ComposeView, הפונקציה תגדיר את המלבן לערך Empty. כך לא ניתן לבחור את התצוגה למיקוד בחיפוש המיקוד. זה חשוב במיוחד כששיטת קלט (IME) כוללת אפשרות 'הבא' והיא מנסה להתמקד ב-ComposeView, אבל הפעולה נכשלת.requestFocus()(Ibd0e2, b/369256395) - הוספת הדגל
isNestedScrollDispatcherNodeFixEnabled. (I0d24a) - שינוי השם של
DialogProperties'dialogContentTitleל-windowTitle(Ibd27b) - הוספנו את המגבילים
Modifier.onFirstVisibleו-Modifier.onVisibilityChanged, שהם מגבילים ברמה גבוהה שמבוססים עלModifier.onLayoutRectChanged. המשנים האלה נוצרו במיוחד כדי לטפל בהרבה דרישות נפוצות של אפליקציות, כמו רישום חשיפות, הפעלה אוטומטית של סרטונים וכו'. הם נוצרו תוך התחשבות בביצועים, כך שאפשר להשתמש בהם בתרחישים קריטיים שמבוססים על רשימות בלי לסכן את ביצועי הגלילה. בנוסף לממשקי ה-API האלה של שינוי, נוספו ממשקי API נוספים ל-RelativeLayoutBoundsכדי לתמוך בתרחישי השימוש האלה, וכדי להקל על מפתחים ליצור בקלות שינויים מותאמים אישית דומים שמתאימים בדיוק לתרחיש השימוש שלהם. (I759b8) - כדי להתחשב בפיתוח עתידי של התכונה הזו, צריך לשנות את הערך
setDiagnosticStackTraceEnabledל-experimental. (I11db3) - הצגת
Modifier.scrollable2D, Scrollable2DStateוממשקי API נלווים ליצירת מצב. הוספנו גם פונקציות נפוצות של תוסף גלילה. (Ic61c8, b/214410040) - אי אפשר להשוות ישירות בין ערכי צבע של 64 ביט ב-Compose לבין ערכי צבע של
ColorLongsב-Android, כי מזהי מרחבי הצבעים לא מסודרים בחלק ממרחבי הצבעים. כדי להמיר בין מרחבי צבעים של Android, נוספו שני ממשקי API חדשים:toColorLong()ו-fromColorLong(). (I36899) - הוספנו את
ViewConfiguration.minimumFlingVelocityכדי לאפשר שליטה במהירות ההטלה של הגבול התחתון. (I11aab)
גרסה 1.9.0-alpha02
7 במאי 2025
androidx.compose.ui:ui-*:1.9.0-alpha02 מופץ. גרסה 1.9.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- מוסיפים את
dialogContentTitleאלDialogProperties, וכך מגדירים את הכותרת של חלון התוכן. bf9d670
תיקוני באגים
- השבתנו זמנית את הסרגלים של חלונות ה-Insets בזמן שאנחנו מתקנים בעיות בבדיקות פנימיות. 8d1402
- תוקן האופן שבו שינויים בקלט של מצביע נוספים ל-
VelocityTrackerב-DragGestureNode. אפשר לשלוט בזה באמצעות הדגל החדשisAdjustPointerInputChangeOffsetForVelocityTrackerEnabled.254ddb
גרסה 1.9.0-alpha01
23 באפריל 2025
androidx.compose.ui:ui-*:1.9.0-alpha01 מופץ. גרסה 1.9.0-alpha01 מכילה את השמירות האלה.
שינויים בהתנהגות
- בדיקות ה-Lint שמגיעות עם Compose דורשות עכשיו גרסת AGP מינימלית של 8.8.2. אם אין לכם אפשרות לשדרג את AGP, אתם יכולים לשדרג את Lint בנפרד באמצעות
android.experimental.lint.version=8.8.2(או גרסה חדשה יותר) בקובץgradle.properties. כדי להריץ בדיקות lint של Compose בתוך סביבת הפיתוח המשולבת (IDE), נדרשת גרסה Android Studio Ladybug או גרסה חדשה יותר.
שינויים ב-API
- מסיר את הסימון להפעלת הצהרות מעקב עבור הכלי למעקב אחר נתיב ההמרה (ניפוי באגים). (I1b2a1)
- הפונקציות
InnerRectRulersו-OuterRectRulesהוחלפו בשיטות. הסרנו את פרמטר השם מ-RectRulerspublic API. האפשרותDerivedRulersהיא עכשיו אפשרות לבנייה של סרגלים אנכיים ואופקיים. השיטותMergedHorizontalRulersו-MergedVerticalRulersהוחלפו בשיטותminOfו-maxOfליצירת מופעים. (Iee89f, b/408192133) - הוצאה משימוש של
androidx.compose.ui.LocalSavedStateRegistryOwnerלטובתandroidx.savedstate.compose.LocalSavedStateRegistryOwner. (I5439f, b/377946781) - הוספת
Modifier.keepScreenOnכדי להגדיר את התצוגה כך שלא תעבור למצב שינה בזמן שהיא מוצגת (Ib5af4, b/408284174) - מוסיפים מאפיין סמנטי חדש
Shape, שאפשר להגדיר אותו כשהצורה של רכיב ממשק המשתמש שונה מהמלבן התוחם שלו, למשל מלבן עם פינות מעוגלות. (I1376f) - תוקנה בעיה בשליחת אירועי הצבעה ב-
AndroidViews, והוסף הדגלisPointerInteropFilterDispatchingFixEnabledכדי להגן על השינויים. (I0e272, b/372055500, b/408002332) FocusRestorerכבר לא מצמיד את הפריט הקודם שהיה במיקוד. המשתמשים צריכים להשתמש במקש כדי לוודא שלפריט שהיה מודגש קודם יש את אותו גיבוב של קומפוזיציה, כדי שההדגשה תשוחזר בהצלחה. (I4203b, b/330696779)- מתן הרשאה לכתיבה להפעיל את
ViewTreeObserver.OnScrollChanged. ההתנהגות הזו מוצגת באמצעות הדגלisOnScrollChangedCallbackEnabled. הוספנו גם פונקציית הרחבה שלDelegatableNode dispatchOnScrollChanged. (I34b9d, b/238109286) - המאפיין
currentCompositeKeyHashהוצא משימוש. במקום זאת, אתם צריכים להשתמש ב-currentCompositeKeyHashCode. ה-API החלופי מקודד את אותו הגיבוב עם יותר ביטים, מה שמקטין באופן משמעותי את הסיכוי ששתי קבוצות אקראיות ולא קשורות בהיררכיית ההרכב יקבלו את אותו מפתח גיבוב. (I4cb6a, b/177562901) - כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5)
- הוספנו תמיכה בבדיקת lint עבור
FocusRequesterכדי לוודא שהוא נשמר בתוך הקומפוזיציה (I6bf91) - נוספה האפשרות להגדיר קצב פריימים מועדף או קטגוריה של קצב פריימים שבהם צריך לבצע את הרינדור של רכיב ה-Composable (Ie5201)
- הצגת מודעות מותאמות לרשת המדיה
MotionEventב-Android. (I17286) - הוספה של
getChecked() + setChecked(int), הוצאה משימוש שלisChecked + setChecked(boolean)(Iaac9d) - המתאם
graphicsLayerמקבל עכשיוblendModeו-colorFilter(Iab0e6) - נוספה
LocalResourcescomposition local to query Resources. קריאה ל-LocalResources.currentתגרום להרכבה מחדש כשההגדרה תשתנה, כך שקריאות לממשקי API כמוstringResource()יחזירו ערכים מעודכנים. (I50c13, b/274786917) - חשיפת API ניסיוני לרכיבים הניתנים להרכבה כדי לטפל באירועי מגע עקיפים (Icff57)
- בגרסה הזו שיפרנו את הדיווח על חריגים שלא טופלו, שנוצרו במהלך שלבי הפריסה והציור של התוכן שניתן להרכבה. בעבר, חריגה שלא נתפסה כאן הייתה גורמת לקריסה של הכלי להרצת בדיקות ולסיום מוקדם של חבילת הבדיקות. אפשר עכשיו לדווח על החריגים האלה בצורה חלקה יותר בלי להפסיק את חבילת הבדיקה. (I9928b, b/314128080)
- הוצאנו משימוש את ה-API הניסיוני
GlobalAssertions. השימוש המיועד שלו היה להפעלת בדיקות נגישות. במקום זאת, אפשר לעיין במאמרenableAccessibilityChecks(). (I50aa5) - התכונה
SemanticsNodeInteraction.performTextInputSelectionכבר לא ניסיונית, ועכשיו היא תומכת בפרמטר נוסףrelativeToOriginalשמאפשר להחיל את הבחירה על הטקסט המקורי שלא עבר שינוי או על הטקסט שעבר שינוי. (I3a905, b/261561038, b/277018945) - השקת API ליצירת רשימות תבליטים בהתאמה אישית דרך
AnnotatedString(I1d066, b/383269496, b/139326648) - הוצאנו משימוש את
runWithTimingDisabledלטובתrunWithMeasurementDisabled, שמתאר בצורה ברורה יותר את ההתנהגות – כל המדדים מושהים. בנוסף, צריך לחשוף את מחלקת העלMicrobenchmarkScopeכי אי אפשר להצהיר מחדש על הפונקציהrunWithMeasurementDisabledכדי לפתוח גישה, כי היא מוטמעת. (I9e23b, b/389149423, b/149979716) - בוצע עדכון של ה-API של כלי ממשק המשתמש (UI) למכשירים כדי לכלול מכשירים חדשים יותר. (Ia2ac1)
- הוספת תצוגה לרוחב של טאבלט לאוסף של גדלי מסך בתצוגה מקדימה כדי לעזור למפתח להתחשב בחלונות גדולים יותר (Ia1976)
- הוספנו API של ערכי מעקב לסימון או לרישום מעקב עם ערכים בנקודת זמן מסוימת. הערכים של המעקב מוצגים ב-Prefetto כנתיב חדש שאפשר לראות בציר הזמן של המעקב. ב-Android, ההטמעה מתבצעת באמצעות
Trace.setCounter. (Idcf48)
תיקוני באגים
- תיקון השליחה של observers שזוכרים בהרכב שניתן להשהיה כדי למנוע שליחה של remembered/forgotten באותו apply (I570b2, b/404645679, b/407931790)
- אפשר להגדיר עכשיו את
android:dialogThemeכדי לשלוט במאפייני תיבת הדו-שיח כש-decorFitsSystemWindowsהוא false (I7922f, b/246909281) - תוקן באג שבו כל אירוע תנועה שזוהה מחוץ לתיבת דו-שיח יכול היה לסגור את תיבת הדו-שיח. (Ia78fd)
- כדי להריץ בדיקות lint ב-Compose, צריך עכשיו גרסת AGP מינימלית של 8.8.2 משורת הפקודה, ולפחות Android Studio Ladybug לתמיכה ב-IDE. אם אתם משתמשים בגרסה ישנה יותר של AGP, אתם יכולים להגדיר את
android.experimental.lint.version=8.8.2ב-gradle.properties כדי לשדרג את גרסת Lint, בלי להשפיע על AGP. (I6f2a8) - נוסף מאפיין סמנטי חדש
InputTextשמתעד את הערך שלtextfieldלפני החלת טרנספורמציה על הפלט. (Iae46a, b/395911609, b/176949051) - העברנו את
enableAccessibilityChecks()API שמפעיל את בדיקות הנגישות ל-Android לחבילות נפרדות שהןcompose:ui:ui-test-accessibilityאם לא משתמשים ב-TestRuleוב-compose:ui:ui-test-junit4-accessibilityכשמתקשרים אלTestRule(I3c318, b/391560768) - הוספנו תמיכה בכתיבת עקבות מחסנית ב-
LaunchedEffectוב-rememberCoroutineScope(I705c0, b/354163858)
External Contribution
- שינוי הפונקציה הניסיונית
runComposeUiTestכך שתקבל חסימת השעיה. נוספה גם פונקציה שהוצאה משימושrunComposeUiTestלצורך תאימות בינארית (I3b88c, b/361577328)
גרסה 1.8
גרסה 1.8.3
18 ביוני 2025
androidx.compose.ui:ui-*:1.8.3 מופץ. גרסה 1.8.3 מכילה את השמירות האלה.
תיקוני באגים
- הדגל של
isGetFocusedRectReturnEmptyEnabledהוסר עכשיו, אחרי שהתכונה אומתה במלואה. (Ife722) - הדגל
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabledגורם לכך שאם אין שום דבר שאפשר להתמקד בו ב-ComposeView, הפונקציה תגדיר את המלבן לערך Empty. כך לא ניתן לבחור את התצוגה למיקוד בחיפוש המיקוד. זה חשוב במיוחד כששיטת קלט (IME) כוללת אפשרות 'הבא' והיא מנסה להתמקד ב-ComposeView, אבל זה לא מצליח.requestFocus()(Ibd0e2, b/369256395)
גרסה 1.8.2
20 במאי 2025
androidx.compose.ui:ui-*:1.8.2 מופץ. גרסה 1.8.2 מכילה את השמירות האלה.
תיקוני באגים
- תוקן NPE כשתיבת הדו-שיח מוסרת במהלך זרם אירועים פעיל בתיבת הדו-שיח (6a7e7f)
- תיקון של
onLayoutRectChangeשלא מתעדכן לפי ציר הזמן המוגבל כשמתרחשים עדכונים של ציור בלבד. (03b82d)
גרסה 1.8.1
7 במאי 2025
androidx.compose.ui:ui-*:1.8.1 מופץ. גרסה 1.8.1 מכילה את השמירות האלה.
תיקוני באגים
- תיקון בעיות מסוימות ב-
onLayoutRectChangedוב-LazyLayoutd791b11 - לדלג על בקשות למדידה מחדש של פריטים שהורכבו מראש. הבאג הזה השפיע על ביצועי הגלילה של פריסות עצלות, כי השליפה מראש לא פעלה ביעילות במקרים מסוימים, והמדידה התבצעה בתוך המסגרת. 742087a
גרסה 1.8.0
23 באפריל 2025
androidx.compose.ui:ui-*:1.8.0 מופץ. גרסה 1.8.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.7.0
- גרסה 1.8 של Compose כוללת תמיכה חדשה במילוי אוטומטי סמנטי. מוודאים שגרסאות ה-UI וה-Foundation שבהן אתם משתמשים הן גרסה 1.8 ואילך, כי כדי למלא אוטומטית רכיבי טקסט צריך את הגרסאות העדכניות של שני המודולים. לדוגמאות ולמידע נוסף על השימוש ב-API, אפשר לעיין במסמכי העזרה בנושא מילוי אוטומטי כאן.
- Compose 1.8 תומך בסוגים נוספים של משוב הפטי:
Confirm,ContextClick,GestureEnd,GestureThresholdActivate,Reject,SegmentFrequentTick,SegmentTick,ToggleOn,ToggleOff,VirtualKey. אפשר לגשת אליה דרךLocalHapticFeedback, וב-Android היא זמינה כברירת מחדל כש-Vibrator API מציין שיש תמיכה במשוב הפטי. - מספר ממשקי Focus API יציבים עכשיו, כולל
Modifier.focusRestorer(),onEnterו-onExitFocusProperties(I6e667). עכשיו אפשר לצייןFocusDirectionכשמתקשרים אלrequestFocus. הוספנו APIrequestFocus(FocusDirection)ל-focusRequesterול-FocusTargetModifierNodeכדי לאפשר מיקוד בכיוון ספציפי. (I5d9ec][https://android-review.googlesource.com/#/q/I5d9eca3a2cd283c1b84ad6b77d929ef9a49ce4cc], b/245755256)
גרסה 1.8.0-rc03
9 באפריל 2025
androidx.compose.ui:ui-*:1.8.0-rc03 מופץ. גרסה 1.8.0-rc03 מכילה את השמירות האלה.
תיקוני באגים
- השבתנו כמה תיקונים של פעולות הדדיות בין מצבי פוקוס שגרמו לרגרסיה. (b9d998, b/369256395, b/378570682, b/376142752, b388590015/, b/389994198, b/391378895)
גרסה 1.8.0-rc02
26 במרץ 2025
androidx.compose.ui:ui-*:1.8.0-rc02 מופץ. גרסה 1.8.0-rc02 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה תצוגות ממוקדות שמוטמעות בהיררכיית ה-Compose גרמו להרכבה חוזרת כשמסירים את התצוגה הממוקדת מ-LazyList. (765562)
גרסה 1.8.0-rc01
12 במרץ 2025
androidx.compose.ui:ui-*:1.8.0-rc01 מופץ. גרסה 1.8.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- תוקן קראש שמתרחש כשמסירים
AndroidViewעם פוקוס כשהמקלדת הווירטואלית פעילה. (Ic725a) - תוקנו כמה בעיות בהטמעה של הטיפול החדש במצב המיקוד. (b/395895685)
- תוקנה בעיה שחוסמת את המילוי האוטומטי כשמשתמשים ב-
LaunchedEffectכדי לבקש התמקדות בשדה טקסט. (b/392539099)
גרסה 1.8.0-beta03
26 בפברואר 2025
androidx.compose.ui:ui-*:1.8.0-beta03 מופץ. גרסה 1.8.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- העברנו את
enableAccessibilityChecks()API שמפעיל את בדיקות הנגישות ל-Android לחבילות נפרדות שהןcompose:ui:ui-test-accessibilityאם לא משתמשים ב-TestRule ו-compose:ui:ui-test-junit4-accessibilityכשמתקשרים אלTestRule(I547ef, b/391560768) - נוסף מאפיין סמנטי חדש,
InputText, שמתעד את הערך של שדה טקסט לפני החלת טרנספורמציה של הפלט. (Iae46a)
תיקוני באגים
- תוקנה בעיה שגרמה לשירותי מילוי אוטומטי לשמור את הטקסט שהפלט שלו עבר שינוי במקום את הטקסט שהוזן. (Iae46a, b/395911609, b/176949051)
גרסה 1.8.0-beta02
12 בפברואר 2025
androidx.compose.ui:ui-*:1.8.0-beta02 מופץ. גרסה 1.8.0-beta02 מכילה את השמירות האלה.
תכונות חדשות
- נוספה בדיקת lint כדי להזהיר מפני קריאות ל-
Configuration#screenWidth/heightDp– אפשר להשתמש ב-LocalWindowInfo.current.containerSizeבמקום זאת כדי לאחזר את גודל החלון הנוכחי.
גרסה 1.8.0-beta01
29 בינואר 2025
androidx.compose.ui:ui-*:1.8.0-beta01 מופץ. גרסה 1.8.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- התכונות
ContextualFlowRowוContextualFlowColumnסומנו כהוצאה משימוש. הרכיב הניסיוני הזה הוצג בגרסה 1.7, והוא עדיין לא עבר ייצוב. ההטמעה שלו נחשבת ללא רצויה. בעתיד, יכול להיות שנספק רכיב שיפתור את תרחישי השימוש שהרכיב הזה נועד לפתור.- ל-
FlowRowול-FlowColumnיש עומסי יתר ניסיוניים שהוצגו בגרסה 1.7 וכוללים פרמטרoverflow. השימוש בפרמטר הזה הוצא משימוש, ואפשר להשתמש במקומו בעומסים העודפים בלי הפרמטר הזה. התנהגות ברירת המחדל של העומסים העודפים האלה היא Clip, כמו שהייתה מאז ההשקה שלהם. - אפשר להשתמש ב-FlowRow כדי לבצע הרבה תרחישים לדוגמה של
ContextualFlowRow, אבל אנחנו מודעים לכך שזה לא נכון באופן כללי. אפשר להטמיע אתContextualFlowRowבאופן מלא במרחב המשתמש, ואפשר לנסות להעתיק את ההטמעה שלו ולהתאים אותה לפי הצורך. בעתיד, ננסה לפתור את תרחישי השימוש האלה בדרך אחרת. (Ibafec)
- ל-
SemanticsNodeInteraction.semanticsId()הוסר. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.fetchSemanticsNode().id. (Ie397a)- ממשקי ה-API הישנים של המילוי האוטומטי הוצאו משימוש. במקום זאת, צריך להשתמש ב-API החדש שמבוסס על סמנטיקה. (I943ff)
- לשכתב את
requestAutofillAPI כך שיהיה מחוץ למנהל המילוי האוטומטי. (Id1929)
תיקוני באגים
- תוקנה בעיה במיקוד שבה
requestFocus()עם פרמטר חסר משמעותpreviouslyFocusedRect(שקשור לכיוון המיקוד) דילג עלComposeView. (Ifdc2f, b/388590015) - תוקנה שגיאת NPE שהתרחשה מדי פעם כשמשתמשים ב-
GraphicsLayer.record { this@ContentDrawScope.drawContent() }. אם אתם מקליטיםdrawContent()בדרך הזו, הקפידו להשתמש בפונקציית ההרחבהGraphicsLayer#recordבתוךDrawScope, ולא בפונקציית החברים ב-GraphicsLayer. (I75fc0, b/389046242) - תיקון פריסת טקסט עם שלוש נקודות, שלפעמים מתורגמת בצורה שגויה במהלך אנימציות. מידע נוסף זמין בכתובת b/389707025 (Ie55b1, b/389707025)
גרסה 1.8.0-alpha08
15 בינואר 2025
androidx.compose.ui:ui-*:1.8.0-alpha08 מופץ. גרסה 1.8.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- הופכים את
AutofillManagerלמחלקה מופשטת. (I0a3b0) - תוקנו כמה בעיות שקשורות למיקוד, כולל קריסות כש-IME מנסה להתמקד ב-
ComposeViewללא פריטים שאפשר להתמקד בהם, שינוי מיקוד בתוךAndroidViewsצאצא ובקשת מיקוד שמשאירהAndroidView. (Ia03c3, b/369256395, b/378570682, b/376142752) - שינוי של
FocusEnterExitScope.cancelFocus()ל-cancelFocusChange()(I89959) - עכשיו אפשר לחשב חסימות של רכיבים באמצעות
RectInfo.calculateOcclusions(). - נוספה פונקציית הרחבה ב-
DelegatableNodeלרישום מאזין לשינויים בפריסה הגלובלית. (I68b59)
תיקוני באגים
- הפעילות שמשמשת כמארח לרכיב הניתן להרכבה שנבדק כשמשתמשים ב-
ComposeContentTestRule.setContent, משתמשת עכשיו בערכת העיצובTheme.Material.Light.NoActionBar, כדי למנוע חפיפה ביןActionBarלבין תוכן הבדיקה כשמטרגטים SDK בגרסה 35. כדי לבטל את ההתנהגות הזו, אפשר להסיר את התלות ב-ui-test-manifestולהוסיף רשומה של פעילות בקובץ AndroidManifest.xml של אפליקציית הבדיקה עבורComponentActivityעם העיצוב הרצוי. (I7ae1b, b/383368165) - כדי למנוע שמירה במטמון של גופנים עם אותן הגדרות וריאציה, הגדרות הווריאציה השגויות לא יחולו יותר. (If3dff, b/372044241)
-
AnnotatedString.fromHtmlתומך עכשיו בתגי<ul>/<li>. (I7c2fe, b/299662276, b/139326648)
External Contribution
- נוסף ממשק חדש ללוח ההעתקה וקומפוזיציה מקומית בשבילו. (I80809)
גרסה 1.8.0-alpha07
11 בדצמבר 2024
androidx.compose.ui:ui-*:1.8.0-alpha07 מופץ. גרסה 1.8.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- הבעלים נחשף מ-
LayoutNodeעבור כלים. (I26f7f) - המאפיין
LocalAutofillHighlightColorcomposition local הוא מסוג Color. (I0e05b) - שומרים את
UrlAnnotationשהוצא משימוש ואת השיטות שלו ומסמנים אותם כניסיוניים. (Ic0021)
תיקוני באגים
- תוקנה קריסת
IndexOutOfBoundsExceptionבמהלך שימוש ב-LinkAnnotationבתוךBasicTextאו Text composable (be7605, b/374115892) - תוקנה הבעיה שבה שדות טקסט מלאים עם צורה מותאמת אישית לא חתכו את קו האינדיקטור. (I4f87f, b/380704151)
- תוקנה בעיה שגרמה לכך שרקעים נעלמו בצילומי מסך ארוכים. (I4d57a)
- הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן אנוטציות של שימוש בטיפוסים. מפתחי Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict(זו ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). (Idfef8, b/326456246) - בוצע עדכון של התמיכה ב-Compose עבור מגוון רחב של צבעים וצבעי HDR כשמריצים ב-Android Q ומעלה. (Icd8be, b/379135036)
- אם גופני משאבים לא נטענים, הם יוחלפו בגופן ברירת המחדל בלי להציג חריגה במדידה, בניגוד להתנהגות הקודמת. (Ib6a49)
- תיקון של בעיה שגורמת לאיבוד הפוקוס כשמנתקים את
AndroidViewומחברים אותו מחדש. (I53446) - אישור
requestFocus()מפעולת פריסה שחורגת מהגבולות. (Ia8461)
External Contribution
- הוספנו את
BringIntoViewResponderModifierNodeלממשק המשתמש, כדי לספק דרך חדשה להטמעה של הפונקציונליות Bring Into View (הצגה בתצוגה) ולאפשר הטמעה ברמת הפלטפורמה. (Ia6dd8)
גרסה 1.8.0-alpha06
13 בנובמבר 2024
androidx.compose.ui:ui-*:1.8.0-alpha06 מופץ. גרסה 1.8.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- הוספת ערך מקדם
stylusHoverIcon. (Iff20a, b/331289114) - שינוי של מנהל המילוי האוטומטי לממשק. (I84914, b/376080755)
- הוספת
requestFocus(FocusDirection)ל-focusRequesterול-FocusTargetModifierNodeכדי לאפשר התמקדות בכיוון מסוים. (I5d9ec, b/245755256) - הפרמטרים
FocusProperties.enterו-FocusProperties.exitהוחלפו בפרמטריםonEnterו-onExit, והשימוש בהם הוא בהיקף של מקבל במקום בפרמטרFocusDirection. (I6e667) - הוספנו תמיכה בהשלמה אוטומטית בסרגל הכלים של הטקסט. (Ie6a4c)
- שינויים ב-API
Modifier.focusRestorer()(I99c03):- שם הפרמטר השתנה ל-fallback
- הפרמטר הוא עכשיו
FocusRequesterולא lambda - הפרמטר לא יכול להיות NULL, וערך ברירת המחדל שלו הוא Default
- הסרת ההערה
@Experimentalמממשק ניהול המילוי האוטומטי. התכונה עדיין נמצאת בתהליך פיתוח (WIP) ומיועדת לגרסה הזו, אבל אנחנו לא רוצים להציג @Expemiental API (Id8398) -
LocalHapticFeedbackמספקת עכשיו הטמעה שלHapticFeedbackכברירת מחדל כש-Vibrator API מציין שיש תמיכה בתחושות מישוש. הפריטים הבאים נוספו אלHapticFeedbackType–Confirm,ContextClick,GestureEnd,GestureThresholdActivate,Reject,SegmentFrequentTick,SegmentTick,ToggleOn,ToggleOff,VirtualKey. רכיבים ב-Wear Compose שאפשר ללחוץ עליהם לחיצה ארוכה, כמוButton,IconButton,TextButtonו-Card, מפעילים עכשיו אתLONG_PRESSהתחושה המישושית כשמסופק handler של לחיצה ארוכה. (I5083d) - הפונקציה מסירה את
OverscrollConfigurationואתLocalOverscrollConfiguration, ומוסיפה אתrememberPlatformOverscrollFactoryכדי ליצור מופע של הטמעה של גלילה מעבר לקצה או להתאים אישית פרמטרים של הטמעה כזו שמוגדרת כברירת מחדל. כדי להשבית את הגלילה העודפת, במקוםLocalOverscrollConfiguration provides null, משתמשים ב-LocalOverscrollFactory provides null. כדי לשנות את צבע הזוהר או את הריווח הפנימי, במקוםLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)משתמשים ב-LocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding). (Ie71f9, b/255554340, b/234451516) - הסרנו את ה-API הניסיוני
GlobalAssertions. השימוש המיועד שלו היה הפעלת בדיקות נגישות. במקום זאת, אפשר לעיין בenableAccessibilityChecks(). (I59322)
גרסה 1.8.0-alpha05
30 באוקטובר 2024
androidx.compose.ui:ui-*:1.8.0-alpha05 מופץ. גרסה 1.8.0-alpha05 מכילה את השמירות האלה.
תכונות חדשות
המילוי האוטומטי מוסתר מאחורי דגל תכונה בגרסה הזו. אנחנו פועלים לשיפור הביצועים, ונשמח לקבל משוב מוקדם על ממשקי ה-API. צפוי שהממשקי ה-API ישתנו לפני שהם יהפכו ליציבים, על סמך משוב.
- כדי להפעיל את המילוי האוטומטי, מגדירים את
ComposeUiFlags.isSemanticAutofillEnabledלערך true ב-onCreateומשתמשים בתמונת המצב האחרונה של Compose. - הגרסה הזו של מילוי אוטומטי תומכת בשמירה ידנית של פרטי כניסה, באמצעות התכונה 'הצעת סיסמה חזקה' ובאמצעות ניווט. הוא תומך גם במילוי כששדה שאפשר למלא אוטומטית מקבל מיקוד או כשמפעילים את המילוי האוטומטי דרך סרגל הכלים של הטקסט ברכיבי טקסט. הרכיב יודגש כדי לציין מתי ההשלמה האוטומטית הסתיימה.
שינויים ב-API
- שינוי ממשק המילוי האוטומטי כך שיתאים למבנה
expect/actual. (I22dce) - הוספנו את
CompositionLocalשאפשר להשתמש בו כדי לשנות את הגוון של ההדגשה במילוי האוטומטי. (I32092) - הוספנו את
Modifier.onRectChangedAPI, שהוא API שמאפשר להירשם למיקום ולגודל שלLayoutNodeביחס לשורש, לחלון או למסך. ממשק ה-API פותר הרבה תרחישי שימוש שקיימים בשינויonGloballyPositioned, אבל הוא עושה את זה עם הרבה פחות תקורה, ויש בו כלים לביטול כפילויות ולויסות נתונים של הקריאה החוזרת בהתאם לדרישות של תרחיש השימוש. (Id28c7, b/372765423, b/372757007, b/372994338) - הוספנו למנהל המילוי האוטומטי את ממשקי ה-API
commit()ו-cancel(), שעוזרים למשתמשים לשמור פרטי כניסה חדשים שהם מזינים. (I2da00) - הגרסה הזו כוללת ממשק חדש
AutofillManagerשאפשר להשתמש בו כדי לשפר את חוויית המשתמש של המילוי האוטומטי, וגם דגלisSemanticAutofillEnabledלהפעלה של הגרסה החדשה של המילוי האוטומטי. (I9d484) - הוספנו את
Modifier.onRectChangedAPI, שהוא API שמאפשר להירשם למיקום ולגודל שלLayoutNodeביחס לשורש, לחלון או למסך. ממשק ה-API פותר הרבה תרחישי שימוש שקיימים בשינויonGloballyPositioned, אבל הוא עושה את זה עם הרבה פחות תקורה, ויש בו כלים לביטול כפילויות ולויסות נתונים של הקריאה החוזרת בהתאם לדרישות של תרחיש השימוש. (I3c8fa) - הוספת מאפיינים סמנטיים וסוגי נתונים לתמיכה מורחבת במילוי אוטומטי. (I52c7d)
- כל השיטות ב-builder
AnnotatedStringכבר לא ניסיוניות (Ia89c8, b/261561823)
תיקוני באגים
- תצוגות שמוטמעות בכלי הכתיבה יכולות עכשיו לקבל אירועים של חוגה אם הן במצב ממוקד (I4d53a, b/320510084)
- תוקנה בעיה שבה סוגים שונים של משאבים לא עודכנו בשינויים בתצורה (Ia9b99, b/352336694)
- תוקנה בעיה שמנעה את הפעולה התקינה של
TextFieldכשמשתמשים במקלדת היפנית POBox במכשירי Sony ישנים מסוימים. (Ia9b99, b/373743376) - תוקנה בעיה שגרמה לתיבות דו-שיח להופיע בתחתית המסך במקום במרכז (Ia2ec, b/373093006)
- החל מ-Targeting API 35, לא מוצגות יותר תיבות דו-שיח עם הערך
decorFitsSystemWindowsשמוגדר כ-false. (Ibc94, b/364492593) - תוקנה קריסה שמתרחשת כשמעבירים שכבות בין חלונות (למשל, תיבת דו-שיח ותוכן ראשי) (I675ba, b/330955281)
גרסה 1.8.0-alpha04
16 באוקטובר 2024
androidx.compose.ui:ui-*:1.8.0-alpha04 מופץ. גרסה 1.8.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- נוספו קריאות חוזרות (callback) של
DelegatableNode#onDensityChangeו-DelegatableNode#onLayoutDirectionChangeכדי לאפשר עדכון של מצב הצומת כשהוא משתנה (I04f3e, b/340662451) - מוסיף את
WindowInfo#containerSizeכדי לספק את הגודל של מאגר התוכן של החלון הנוכחי. אפשר לאחזר אותו באמצעותLocalWindowInfo. (Idc38c, b/369334429, b/360343819) - הוספנו תיקון לבעיה שבה אזורים עם אפשרות גלילה שמוסרים מעץ הצמתים במהלך גלילה מהירה. עכשיו הצמתים האלה יבטלו את ההטלה וישלחו בצורה תקינה את אירוע
onPostFlingעם המהירות שנותרה. אנחנו משיקים גם את האפשרותNewNestedScrollFlingDispatchingEnabledלשליטה בהתנהגות במקרה של רגרסיות. הדגל יוסר לפני השקת הבטא. (I05c37, b/371168883) - הוספנו את
PointerInputModifierNode#touchBoundsExpansion, שאפשר להשתמש בו כדי להגדיל את גבולות המגע של משנה קלט של מצביע יחיד. (Iccf02, b/335339283) - מוסיף את
WindowInfo#containerSizeכדי לספק את הגודל של מאגר התוכן של החלון הנוכחי. אפשר לאחזר אותו באמצעותLocalWindowInfo. (I27767, b/369334429, b/360343819) - מסירים את
readOnlyמ-TextFieldsכדי להצמיד לגרסה יציבה של המודל הבסיסי. (I3aaba) -
Paragraphו-ParagraphIntrinsicsמקבלים עכשיו רשימה של כל ההערות שחלות עלAnnotatedString. בעבר הם קיבלו רק רשימה שלSpanStyles(I12f80)
תיקוני באגים
- עודכן האופן שבו פסקאות מטופלות ב-
AnnotatedString. בעבר, יכולתם ליצור רק פסקאות שלא חופפות. עכשיו התגAnnotatedStringמאפשר חפיפה מלאה בין פסקאות, כך שהן ימוזגו יחד, וגם פסקאות מוטמעות. במקרה כזה, הפסקה החיצונית תפוצל לפי הגבולות של הפסקה הפנימית, והסגנון של הפסקה הפנימית ימוזג עם הסגנון של הפסקה החיצונית (Ic9554) - תיקון קריסה ב-
AnnotatedStringעםLinkAnnotationבאורך אפס. (89aac6)
גרסה 1.8.0-alpha03
2 באוקטובר 2024
androidx.compose.ui:ui-*:1.8.0-alpha03 מופץ. גרסה 1.8.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- עדכון גרסת Kotlin ל-1.9 (I1a14c)
- הוספנו תפקיד סמנטי חדש בשם Carousel (קרוסלה) כדי לחקות את התנהגות הרשימה ברכיבי Pager בשירותי נגישות. (Id354b, b/354109776, b/239672673)
- שינוי השם של
invisibleToUser()לhideFromAccessibility. הפונקציה שלו נשארת זהה. פרטים נוספים מופיעים במסמכי התיעוד. (Ib43a3)
תיקוני באגים
- עדכון מסמכים לגבי משנה
SensitiveContent(Ib0442) - תוקנה בעיה שבה המערכת התעלמה מקליפים מסוימים של מתאר כללי בשילוב עם צללי גובה בגרסאות מסוימות של Android
- תוקנה הבעיה שבה קליפים ריקים הוחלו כשצוינו קליפים כלליים של קווי מתאר בגרסאות מסוימות של Android.
- תוקן חריג שמופעל כש-IME פעיל בתצוגה חיצונית ומשתמשים בפעולה 'הבא' כדי להזין מיקוד ב-
ComposeView. ההתנהגות שלclearFocus()תואמת להתנהגות של View ב-API בגרסה < 28, שבהclearFocus()יכול לגרום להתמקדות ב-View שמוגדר כברירת מחדל. - תוקנה בעיה שגרמה להצבה של רכיבים בצמתים מנותקים ב-
LazyListעל ידי הפרדה של ניהול רכיבי המשנה למעברים שונים של פריסת התוכן. - תוקנה בעיה שבה המקלדת הווירטואלית מהבהבת כשעוברים מ-
TextFieldל-EditTextאו לכל עורך אחר מבוסס-תצוגה. - צמתי גלילה מוטמעים ישלחו עכשיו אירועי
onPostFlingבצורה נכונה אחרי שהם ינותקו. - שיפורים כלליים בביצועים
גרסה 1.8.0-alpha02
18 בספטמבר 2024
androidx.compose.ui:ui-*:1.8.0-alpha02 מופץ. גרסה 1.8.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- אפשר להשתמש עכשיו בתווים
TextOverflow.StartEllipsisו-TextOverflow.MiddleEllipsisכדי להציב את סימן הנקודות החסרות בתחילת השורה או באמצע השורה של הטקסט בשורה אחת. (I38913, b/185418980)
תיקוני באגים
- תיקון דיאלוג
dismissOnClickoutside(39a3d, b/364508685) - לא לחתוך את הצללים של תוכן הדיאלוג (e8e2f, b/363027803)
- תיקון התנהגות שגויה כשמעבירים את המיקוד בחיפוש בין חלון הכתיבה לתצוגה (58377, b/350534714)
External Contribution
- הפרמטר
AlignmentLinesMapמקבל עכשיו את הסוגים הקונקרטייםVerticalAlignmentLineאוHorizontalAlignmentLine. (I02912) - method חדש מסוג
ByteArray.decodeToImageBitmap(): ImageBitmap. (I83c21)
גרסה 1.8.0-alpha01
4 בספטמבר 2024
androidx.compose.ui:ui-*:1.8.0-alpha01 מופץ. גרסה 1.8.0-alpha01 מכילה את השמירות האלה.
גרסה 1.7
גרסה 1.7.8
12 בפברואר 2025
androidx.compose.ui:ui-*:1.7.8 מופץ. גרסה 1.7.8 מכילה את השמירות האלה.
גרסה 1.7.7
29 בינואר 2025
androidx.compose.ui:ui-*:1.7.7 מופץ. גרסה 1.7.7 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה הבעיה
IndexOutOfBoundsExceptionכשמעביריםAnnotatedStringעםLinkAnnotationל-Text composable. (Ic96d2) - תוקנה בעיית פסק זמן בבדיקות במקרים נדירים שבהם נעשה שימוש ב-
LinkAnnotationב-AnnotatedString. (I04a03)
גרסה 1.7.6
11 בדצמבר 2024
androidx.compose.ui:ui-*:1.7.6 מופץ. גרסה 1.7.6 מכילה את השמירות האלה.
תיקוני באגים
- בעבר, המערכת הייתה מחזירה שגיאה בכל פעם שהיא נתקלה באירוע מרכזי כשהיו פסילות בהמתנה במערכת המיקוד. מעכשיו אנחנו מתעדים שגיאה במקום (I7ea0, b/346370327).
- הערה ניסיונית הוסרה מהפריט
SemanticsPropertyReceiver.invisibleToUser(). המאפיין הזה יוצא משימוש בגרסה 1.8 ומוחלף במאפייןSemanticsPropertyReceiver.hideFromAccessibility(). (I448f0, b/376479686) - תוקנה בעיה שמנעה את הפעולה התקינה של
TextFieldכשמשתמשים במקלדת היפנית POBox במכשירי Sony ישנים מסוימים. (I94e0e, b/373743376) - תוקנה בעיית נגישות שבה
BasicText’s inlineContent לא הוכרז על ידיTalkBack. (I67bcb, b/376479686)
גרסה 1.7.5
30 באוקטובר 2024
androidx.compose.ui:ui-*:1.7.5 מופץ. גרסה 1.7.5 מכילה את השמירות האלה.
תיקוני באגים
- תוקנו בעיות שבהן גובה וחיתוך עם קווי מתאר מותאמים אישית לא עובדו כראוי.
- תוקנה קריסה של טקסט שמתרחשת עם רווח אפס
LinkAnnotation. (Ic1e2e) - תוקנה הודעה ב-
Talkbackשל הלחצן כשהוא בנוי כרכיב Text קומפוזבילי שאפשר ללחוץ עליו. (I1f588)
גרסה 1.7.4
16 באוקטובר 2024
androidx.compose.ui:ui-*:1.7.4 מופץ. גרסה 1.7.4 מכילה את השמירות האלה.
גרסה 1.7.3
2 באוקטובר 2024
androidx.compose.ui:ui-*:1.7.3 מופץ. גרסה 1.7.3 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה ציון קליפ כללי של קו מתאר הוביל לגבול קליפ ריק בגרסאות מסוימות של Android.
- תוקן חריג שמופעל כש-IME פעיל בתצוגה חיצונית ומשתמשים בפעולה 'הבא' כדי להזין מיקוד ב-
ComposeView. ההתנהגות שלclearFocus()תואמת להתנהגות של View ב-API בגרסה < 28, שבהclearFocus()יכול לגרום להתמקדות ב-View שמוגדר כברירת מחדל. - תוקנה הבעיה שבה נעשה שימוש ב-
placeOrderשגוי לביטול מראש, ולכן תוקן מקרה קצה שבו דילגו על מיקום של חיפוש מראש.
גרסה 1.7.2
18 בספטמבר 2024
androidx.compose.ui:ui-*:1.7.2 מופץ. גרסה 1.7.2 מכילה את השמירות האלה.
תיקוני באגים
- שיפור הביצועים של אירועים סמנטיים ושל מידע על צמתים של נגישות על ידי הסרת מעקב מפורט. (I89156, b/362530618)
-
ComposeViewלא יקרוס יותר כשיועבר לו גודל מדידה גדול במיוחד (da5db, b/347036173) - תוקנה בעיה בנגישות של קורא מסך שגרמה לכך שלא הושמעו הודעות על לחצנים.
LiveRegion(f66fa7, b/348590026)
גרסה 1.7.1
10 בספטמבר 2024
- לא בוצעו שינויים בפריטי מידע של Android.
-desktopארטיפקטים הוסרו ו-jvmStubsו-linuxx64Stubsארטיפקטים נוספו. אף אחד מהיעדים האלה לא מיועד לשימוש, הם משמשים כ-placeholder כדי לעזור למאמצי Jetbrains Compose.
גרסה 1.7.0
4 בספטמבר 2024
androidx.compose.ui:ui-*:1.7.0 מופץ.
שינויים חשובים מאז גרסה 1.6.0
שינויים חשובים בגרסה 1.7.0 מפורטים בפוסט הזה בבלוג.
גרסה 1.7.0-rc01
21 באוגוסט 2024
androidx.compose.ui:ui-*:1.7.0-rc01 מופץ. גרסה 1.7.0-rc01 מכילה את השמירות האלה.
שינויים בולטים
- מודול ui:ui מחייב עכשיו גרסה מינימלית של foundation:foundation, לפחות 1.7.0-rc01 או גרסה חדשה יותר. האכיפה הזו נועדה לתקן חוסר תאימות בהתנהגות בין ui לבין foundation בנוגע לשינויים ב-
NestedScrollSourceשקרו בשלב מוקדם במהלך 1.7.0-alpha01.
גרסה 1.7.0-beta07
7 באוגוסט 2024
androidx.compose.ui:ui-*:1.7.0-beta07 מופץ. גרסה 1.7.0-beta07 מכילה את השמירות האלה.
תיקוני באגים
- הפונקציות
SemanticsNodeInteraction,performTextReplacement,performTextInputו-performTextClearanceשקשורות לקלט טקסט יחזירו עכשיו שגיאות של טענות (assertion) כשהן יופעלו עלTextFieldsלקריאה בלבד. (I4ae8f)
גרסה 1.7.0-beta06
24 ביולי 2024
androidx.compose.ui:ui-*:1.7.0-beta06 מופץ. גרסה 1.7.0-beta06 מכילה את השמירות האלה.
גרסה 1.7.0-beta05
10 ביולי 2024
androidx.compose.ui:ui-*:1.7.0-beta05 מופץ. גרסה 1.7.0-beta05 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג שבו שינוי המקלדת הווירטואלית גורם לכך ש-
TextFieldלא מקבל קלט מהמקלדת החדשה עד שהמיקוד אובד ומוחזר. - תוקנה הבעיה שבה ניסיונות לשמור את תוכן השכבה גרמו לתופעות לוואי לא רצויות במהלך עיבוד עם תוכן
SurfaceView.
גרסה 1.7.0-beta04
26 ביוני 2024
androidx.compose.ui:ui-*:1.7.0-beta04 מופץ. גרסה 1.7.0-beta04 מכילה את השמירות האלה.
תיקוני באגים
- תיקון באג שגורם לקריסה כשמודדים שורות טקסט גדולות מאוד (למשל, 10,000 תווים) (8157ab)
- השבתת התמיכה בעיבוד תוכנה עבור
GraphicsLayerAPI. (35ddd8) - תיקון קריסה בלוגיקה של שמירת שכבות. (70b13e)
- האופטימיזציה של שימוש חוזר באובייקטים של שכבות בוטלה, כי היא גרמה לבעיות בעיבוד. (70b13e)
גרסה 1.7.0-beta03
12 ביוני 2024
androidx.compose.ui:ui-*:1.7.0-beta03 מופץ. גרסה 1.7.0-beta03 מכילה את השמירות האלה.
גרסה 1.7.0-beta02
29 במאי 2024
androidx.compose.ui:ui-*:1.7.0-beta02 מופץ. גרסה 1.7.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- השם של
SemanticsProperties.Editableהשתנה ל-IsEditableוהערך שלSemanticsPropertyReceiver.editableהשתנה ל-isEditable. המאפיין הוא עכשיו בוליאני ותמיד מצוין על ידי שדות טקסט. (I8acd8) - לשנות את השם של פרמטר נקודת ההשוואה של הנגישות. (I3d440)
- API מעודכן לעיצוב הקישורים:
TextLinkStylesהוא עכשיו חלק מה-constructorLinkAnnotationומה-methodAnnotatedString.fromHtml(I90b2b). הסרנו גם אתTextDefaultsמחומר הלימוד (I5477b)
תיקוני באגים
- שם השדה
LayoutCoordinates.introducesFrameOfReferenceשונה ל-LayoutCoordinates.introducesMotionFrameOfReferenceכדי לשקף טוב יותר את המטרה שלו. שם הפונקציה שקשורה לחישוב הקואורדינטות שונה בהתאם לדגל הזה. (I3a330)
גרסה 1.7.0-beta01
14 במאי 2024
androidx.compose.ui:ui-*:1.7.0-beta01 מופץ. גרסה 1.7.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- השם של
performCustomAccessibilityActionLabelledשונה ל-performCustomAccessibilityActionWithLabelושלperformCustomAccessibilityActionWhereשונה ל-performCustomAccessibilityActionWithLabelMatching. (I5387f) -
AnnotatedString.hasEqualsAnnotationsנקרא עכשיוhasEqualAnnotations(I685c0) - ה-API לעדכון קישורים עם עיצוב Material בטקסט עודכן. הסרנו את השיטות מה-
TextDefaultsליצירתLinkAnnotationsעם נושאים ולניתוח HTML עם קישורים שמותאמים לנושאים. במקום זאת, הוספנו מחלקהTextLinkStylesשמאפשרת לעצב את הקישורים כפרמטר ל-Text composable. (I31b93)
תיקוני באגים
- תוקנו תרחישי שימוש נוספים כשמוסיפים באופן דינמי משנים של קלט מצביע במהלך אירועים 63e1504
גרסה 1.7.0-alpha08
1 במאי 2024
androidx.compose.ui:ui-*:1.7.0-alpha08 מופץ. גרסה 1.7.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה בהטמעות של צורות שניתנות לשינוי. התג
Shape#createOutlineנצפה עכשיו בשכבות גרפיות, ולכן קריאת ערכי מצב בתוך השכבות האלה תגרום לביטולים כשהמצב ישתנה, וכך יתאפשר ליצור אנימציות של צורות עם ביצועים טובים יותר. (Id1629, b/326070216) - השם של
isPositionedByParentWithDirectManipulationשונה ל-introducesFrameOfReference. שימו לב שההשפעה שלה הפוכה עכשיו, כלומר, כברירת מחדל, רובLayoutCoordinatesמציגים מסגרת הפניה, ורק כשממקמים אותם תחת מניפולציה ישירה, המאפיין יהיה false. כדי לשלוח שאילתה לגבי מיקום רק עם אלה שמציגים מסגרת התייחסות, משתמשים ב-positionInLocalFrameOfReference(...). אוpositionInLocalLookaheadFrameOfReferenceמ-LookaheadScope. (Ifc5f7) - ממשקי ה-API הפכו ליציבים (I21507)
LookaheadScope - שינוי של lambda של פעולה עבור
getScrollViewportLengthבהתאם למשוב של מועצת ה-API. (Ibc74a) - ממשקי ה-API של
GraphicsLayeroutline עודכנו כך שישתמשו בפרמטרים מסוג float במקום בפרמטרים מסוג int. הוסרו ערכיUnsetOffset/UnsetSize IntSizesentinel לטובת קבועים מסוג Unspecified שכבר קיימים במחלקות מוטבעות מסוג float based Offset ו-Size (I2fb03, b/333863462) - כשמזריקים קלט של עכבר במהלך בדיקות, הפונקציות
MouseInjectionScope.click(),MouseInjectionScope.doubleClick(),MouseInjectionScope.tripleClick(),MouseInjectionScope.longClick()מקבלות עכשיו פרמטרbutton: MouseButtonכדי שיהיה אפשר להשתמש בהן באופן אוניברסלי יותר. ערך ברירת המחדל הואMouseButton.Primaryלכל השיטות. (I31a23, b/190493367, b/261439695) - השם של
onClickedשונה ל-onClickבתוךLinkInteractionListener. (Iaa35c) - שינוי השם של
TextInclusionStrategy.isInsideלisIncluded. הגדרת סוג ההחזרה שלParagraph/MultiParagraph#getRangeForRect()כלא ניתן לאיפוס. (I51f26)
תיקוני באגים
- תוקנה בעיה בצילום מסך ארוך של מאגרי תגים נגללים עם
reverseScrolling=true. (I7c59c)
External Contribution
- הוספנו תמיכה באחזור מראש של פריטים ב-
LazyListsמקוננים (למשלLazyColumnשמציגLazyRowsמקונן). השינוי הזה צפוי להפחית את מספר הפריימים שנושרים במהלך גלילה ב-LazyListsהאלה. ההטמעה מתבצעת כברירת מחדל על ידי אחזור מראש של 2 הפריטים הראשונים ברמה השנייה, אבל אפשר לשלוט בהתנהגות הזו באמצעות ממשקי ה-API החדשיםLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)ו-LazyListPrefetchStrategy#onNestedPrefetch. (I51952)
גרסה 1.7.0-alpha07
17 באפריל 2024
androidx.compose.ui:ui-*:1.7.0-alpha07 מופץ. גרסה 1.7.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- האפשרות
ClickableTextהוצאה משימוש. כדי להוסיף קישורים לטקסט, יוצריםAnnotatedStringעםLinkAnnotationשמתאים לקישור ומעבירים אתAnnotatedStringהזה ל-Text composable. (I34d4b, b/323346994) - הוספנו את
ViewConfiguration.HandwritingGestureLineMarginלתנועות של כתב יד. תמיכה במחוותJoinOrSplitעבורBasicTextField(Ie6e13, b/325660505) - התכונות
FocusProperties.enterו-FocusProperties.exitכבר לא ניסיוניות. התכונותFocusDirection.Enterו-FocusDirection.Exitכבר לא ניסיוניות. FocusRequester.Cancelכבר לא ניסיוני (I461a1, b/261564106) - כשמבצעים שאילתה לגבי קואורדינטות של פריסה, אפשר להשתמש עכשיו בארגומנט
excludeDirectManipulationOffsetכדי להחריג את ההיסט שמוגדר על ידי פריסות אב שמיקמו את רכיבי הצאצא שלהן באמצעותPlaceable.PlacementScope.withDirectManipulationPlacement. באופן דומה, רכיב Layout שמשנה את המיקום של רכיבי הצאצא שלו לעיתים קרובות עשוי למקם אותם עכשיו באמצעותwithDirectManipulationPlacement(כמו Scroll, שמוטמע כברירת מחדל). השינוי הזה עוזר ליצור אנימציות אינטואיטיביות יותר ב-approachLayout, כי עכשיו אפשר להבחין בין האנימציה של ההזזה לבין האנימציה של הגישה. (I60ec7) - הסרנו את דגל התכונה לצילומי מסך ארוכים. (I28648, b/329128246)
-
LazyColumnיציג עכשיו כותרות קבועות בצורה נכונה בצילומי מסך ארוכים. (I8d239, b/329296635) - מקורות
NestedScrollDrag and Fling מוחלפים במקורותUserInputו-SideEffectכדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (Side Effect) וגלגל העכבר והמקלדת (UserInput). (I40579) - גרסאות
ApproachLayoutModifierNodeו-Modifier.approachLayoutיציבות עכשיו, ויש גרסאות חדשותisMeasurementApproachInProgress()ו-isPlacementApproachInProgress()שמחליפות את הגרסאות הישנותisMeasurementApproachComplete()ו-isPlacementApproachComplete()בהתאמה. - הוסר משנה (modifier) שהוצא משימוש
intermediateLayout. (I3e91c) - שינוי השם של
GraphicsLayer#buildLayerל-record כדי לשקף את השיטות begin/endRecording של ממשקי API שמגובים על ידי Displaylist, כמוRenderNodeו-Picture. - העדכון של
rememberGraphicsLayerמאפשר שימוש ב-rememberObserver. (I312c1, b/288494724, b/330758155) - האפשרות
UrlAnnotationהוצאה משימוש. במקומה צריך להשתמש ב-LinkAnnotation.Url. אם אתם משתמשים בערכת נושא של Material, צריך להשתמש באובייקטTextDefaultsכדי ליצור את ההערה עם ערכת הנושא של Material (I8d180, b/323346545) - נוספה אפשרות לעיצוב של מצב לחיצה לקישורי טקסט, בנוסף לעיצוב רגיל, עיצוב במצב ריחוף ועיצוב במצב מיקוד (I5f864, b/139312671)
- השם של
String.parseAsHtmlשונה לAnnotatedString.Companion.fromHtml. (I43dcd) - נוספו ארגומנטים של סגנון (
linkStyle, focusedLinkStyle, hoveredLinkStyle) ומאזין לאינטראקציה עם קישור לשיטהparseAsHtml. כשמנתחים את המחרוזת עם תגי ה-HTML באמצעות תגי<a>, השיטה יוצרתLinkAnnotation.Urlלכל תג כזה ומעבירה את אובייקטי הסגנון ואת מאזין האינטראקציות עם הקישור לכל הערה. (I7c977) -
LinkAnnotationמקבל עכשיו את הארגומנטים של העיצוב מבוסס-המצב ואתLinkInteractionListener. כדי להוסיף היפר-קישור, מוסיפים את ההערה הזו ל-AnnotatedString. אפשר להעביר אתfocusedStateאו אתhoveredStateכדי להגדיר את המראה של הקישורים כשמתמקדים בהם או כשמעבירים מעליהם את העכבר.configuration(I81ce4, b/139312671) - השדה
ImeOptions.hintLocalesכבר לא יכול להכיל ערך null. אם רוצים להעביר רשימה ריקה של לוקאלים, צריך להשתמש ב-LocaleList.Empty. (Ic5bc4)
תיקוני באגים
- מטפל בצורה חלקה בנתוני אירועים היסטוריים שגויים או פגומים (מתעלם מנתוני אופסט שגויים).
- תוקנו אירועים לא צפויים של הצבעה כשמוסיפים באופן דינמי משנה של קלט הצבעה לפני משנה אחר של קלט הצבעה במהלך זרם פעיל של אירועים של קלט הצבעה (לדוגמה, בין כניסה למצב ריחוף לבין יציאה ממצב ריחוף [עכבר/עט]).
גרסה 1.7.0-alpha06
3 באפריל 2024
androidx.compose.ui:ui-*:1.7.0-alpha06 מופץ. גרסה 1.7.0-alpha06 מכילה את השמירות האלה.
תכונות חדשות
- הוספנו את ה-method
parseAsHtmlלמחרוזות עם סגנון: היא מאפשרת להמיר מחרוזת שמסומנת בתגי HTML ל-AnnotatedString. שימו לב: לא כל התגים נתמכים. לדוגמה, עדיין אי אפשר להציג רשימות עם תבליטים. (I84d3d, I30626, b/139326648) - הטמענו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות ה-API הרשמי של Android (
ScrollCaptureCallback). התכונה הזו ניסיונית ויכול להיות שהיא לא תטפל כרגע בכל המקרים בצורה נכונה. לכן, בשלב הזה הוא מושבת כברירת מחדל. כדי להצטרף, מגדירים את הדגלComposeFeatureFlag_LongScreenshotsEnabledלערך true. (I2b055, b/329296471)
שינויים ב-API
- הערך של
fun ClipEntry.getMetadata()השתנה ל-val ClipEntry.clipMetadata. (I50155) - הפונקציות
ClipboardManager.getClipMetadataו-ClipboardManager.hasClipהוסרו. אפשר להשתמש ב-clipEntry.getMetadata()כדי לקרוא את המטא-נתונים של רשומת הקליפ הנוכחית. כדאי גם לבדוק את התוצאה שלClipboardManager.getClipאם היא null או לא, כדי להבין אם יש בלוח העתקה קליפ נוכחי. (I50498) - עכשיו אפשר להעביר אובייקטים של
GraphicsLayerלפונקציות שלplaceable.placeWithLayer()(I1b22f) -
ClipboardManager.setClipמקבל עכשיו ערך null כדי לאפשר ניקוי של הלוח. (I7d2e9) - נוספו מזהי משאבים כדי לעזור בהסתרת תצוגות שמשמשות כפרטי הטמעה בתוך כלי בנייה (I99531)
- הוספנו את שיטת ההשהיה
GraphicsLayer#toImageBitmapכדי לתמוך בהצגת תוכן של מפת סיביות ב-GraphicsLayer#toImageBitmap.GraphicsLayerזוהי פעולת רינדור עם האצת חומרה ב-API ברמה 22 ומעלה (כולל), שתומכת ביותר מ-99% מכל מכשירי Android. ב-Android API ברמה 21, המערכת חוזרת לרינדור תוכנה. (I9e114) - שיטת עזר להמרה של
RectFב-Android ל-ComposeRect(I39925, b/325660505) - לכל הפרמטרים
KeyboardOptionsיש עכשיו ערך לא מוגדר כברירת מחדל. נוספה השיטהKeyboardOptions.merge. - שם המאפיין
KeyboardOptions.autoCorrectשונה ל-autoCorrectEnabled, והוא הוגדר כמאפיין שאפשר להשאיר ריק (nullable). ערך ריק מציין שלא צוין ערך. (Ia8ba0, b/295951492) -
BasicTextField(state)variant ו-BasicSecureTextFieldמשתמשים עכשיו ב-KeyboardActionHandlerבמקום ב-KeyboardActionsכדי לעבד פעולות שמתבצעות במקלדת התוכנה. (I58dda)
גרסה 1.7.0-alpha05
20 במרץ 2024
androidx.compose.ui:ui-*:1.7.0-alpha05 מופץ. גרסה 1.7.0-alpha05 מכילה את השמירות האלה.
תכונות חדשות
- השקנו
GraphicsLayerAPI חדש לתיעוד פקודות ציור ברשימת תצוגה, וגם מאפיינים נוספים שמשפיעים על העיבוד של רשימת התצוגה. הגבול הזה מאפשר לחלק סצנה מורכבת לחלקים קטנים יותר שאפשר לעדכן בנפרד בלי ליצור מחדש את כל הסצנה. אפשר לבצע שינויים בGraphicsLayerבלי להקליט מחדש את רשימת התצוגה. בניגוד ל-Modifier.graphicsLayer,GraphicsLayerמאפשרת עיבוד של תוכן שאפשר להרכיב במקומות אחרים, והיא שימושית בתרחישים של אנימציה שבהם התוכן אמור להיות מעובד בסצנות שונות.
שינויים ב-API
-
GraphicsLayer.draw(Canvas)כבר לא API ציבורי. במקומה צריך להשתמש בפונקציית התוסףDrawScope.drawLayer(GraphicsLayer)כדי לצייר את השכבה. (I7a7c0) - פיצול
restrictedConstraints()לשתי שיטות:fitPrioritizingWidth()ו-fitPrioritizingHeight()(I6d7fd) - נוסף stub לשימוש ב-Android L (I1c3b5, b/288494724)
HardwareCanvas - עדכון של Compose framework כדי לחשוף
GraphicsContextcomposition local לצד עדכון של Owner, DelegateableNodeו-drawWithCacheModifier implementations כדי לחשוף גישה ל-GraphicsContextלגישה מוגבלת שתנקה באופן אוטומטי מופעים שלGraphicsLayerכש-Modifiers מוסרים. (I64a2f, b/288494724) - הוספנו את
InterceptPlatformTextInputכדי לעזור לכתוב בדיקות ברמה נמוכה שקשורות ל-IME, ותרחישי שימוש אחרים ברמה נמוכה שקשורים ל-IME. המאפייןPlatformTextInputTestOverrideהוצא משימוש. (I862ed, b/322680547) - נוספה פונקציית התוסף
GraphicsLayer.setOutline(Outline). (Ib81f4) - הוספנו את בנאי הפונקציות
GraphicsContextכדי ליצור מפעל ליצירת מופעים שלGraphicsLayer(Ib98d6, b/288494724) - חשפנו את
GraphicsLayerה-API כדי לספק למפתחים גמישות בהגדרת הפקודות לציור, שאפשר להשתמש בהן כדי לצייר במקומות אחרים וגם להחיל אפקטים ויזואליים שונים על התוצאה הסופית. (I80245, b/288494724) - הוספנו את הפונקציה
Paragraph#getRangeForRectשמחזירה טווח של טקסט שמכוסה על ידי אזור מלבני נתון. (Iee516, b/325660505) - הוסר שינוי ניסיוני של
BasicTextעם הארגומנטonLinkClicked. בעתיד נשיק API חלופי לתמיכה בהיפר-קישורים. (I107d5)
תיקוני באגים
- הוספנו הגדרת API של
GraphicsLayerexpect/actual כדי לתמוך בלכידה ובהפעלה מחדש של פקודות ציור עם אפקטים חזותיים והמרות של קומפוזיציה אופציונלית. הוספנו ממשקGraphicsContextשמכיל יחסי תלות של גרפיקה, כולל יצירה וניהול של מופעיGraphicsLayer. (I4a8d6, b/288494724) - תוקנה בעיה של פעולה הדדית עם חיפוש מיקוד דו-ממדי, שבה המיקוד נתקע בתוך
ComposeViewשהוטמע בין תצוגות אחרות. (I08fd4)
External Contribution
- העברנו את
LocalLifecycleOwnerמ-Compose UI אלlifecycle-runtime-composeכדי שאפשר יהיה להשתמש בממשקי העזר של ה-API שמבוססים על Compose מחוץ ל-Compose UI. תודה ל-Jake Wharton על התרומה. (I6c41b, b/328263448) - חשיפה עקבית של מאפייני הטיה צפים בכל תתי-הסוגים של התאמה שמבוססת על הטיה. (I69f0f, b/328088992)
גרסה 1.7.0-alpha04
6 במרץ 2024
androidx.compose.ui:ui-*:1.7.0-alpha04 מופץ. גרסה 1.7.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- תמיכה בתכונת הכתיבה הידנית בסטיילוס ב-BasicTextField2 במכשירים עם Android U ואילך. (I002e4)
- ב-CL הזה אנחנו מוסיפים את הפעולה הסמנטית
GetScrollViewportLengthכדי שנוכל להעביר מידע על הרכיבים שמוצגים בגלילה ב-Compose למערכת הנגישות. ב-CL הזה מיושם גם השימוש במאפיין הזה ברשימות Foundation Scrollable. (Ic5fa2) -
FocusRequester.createRefsיציב עכשיו (I4d92c, b/261436820) - הוספנו את
DelegatableNode.requireView()כדי לאפשר לצמתי שינוי לקבל אתViewהנוכחי של Android בלי לקרוא את המיקום המקומי של הקומפוזיציה. (I40768) - API חדש
Path.reverse()להיפוך הכיוון של נתיב (I36348) - נוסף
hintLocalesל-KeyboardOptionsכדי לספק ל-TextFieldsאת היכולת להציע IME עם לוקאלים ספציפיים כדי להגדיר מראש שפה מועדפת. - חשיפת המאפיין
platformLocaleמתוךLocaleשמחזיר את אובייקט הפלטפורמה הבסיסי, למשלjava.util.Locale. (I921c6)
גרסה 1.7.0-alpha03
21 בפברואר 2024
androidx.compose.ui:ui-*:1.7.0-alpha03 מופץ. גרסה 1.7.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- חדש:
ContextualFlowRowושיפורים ב-FlowRow/Columnעם MaxLines ו-Overflow. אנחנו שמחים להודיע על שיפורים ברכיבים הניסיונייםFlowRowו-FlowColumn, שכוללים עכשיו תמיכה ב-maxLines וב-overflow, ועל השקת הרכיביםContextualFlowRowו-ContextualFlowColumn. העדכון הזה נועד לספק רכיבים עם ביצועים אופטימליים. הרכיבContextualFlow*מתאים למספר גדול של פריטים שמשתמשים בהגדרה קטנה שלmaxLinesובלחצנים דינמיים של 'עוד' +N. הרכיביםFlowRowו-FlowColumnמתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRowאו ב-FlowColumn, שבה כל הפריטים מורכבים בלי קשר להתאמה שלהם לערך המקסימלי של הציר הניצב, צריך להגדיר אתoverflowל-FlowRowOverflow.Visibleאו ל-FlowColumnOverflow.Visibleבמהלך האתחול. כדאי לעיין בContextualFlowRowSampleובFlowRowSampleכדי לראות דוגמאות לשימוש בתכונות החדשות האלה. (Ib9135, b/293577082) - הוספת מאפיין סמנטי
maxTextLengthשצריך להגדיר בשדות טקסט שמסננים את מספר התווים המקסימלי המותר. (I24d9f, b/170648072) - יחידת העיטוף
Modifier.inspectableהוצאה משימוש. ה-API הזה יוצר יותר ביטולים של שינוי המחיר מהנדרש, ולכן השימוש בו לא מומלץ יותר. מומלץ למפתחים להטמיע את המתודהinspectableProperties()ב-ModifierNodeElementאם הם רוצים לחשוף מאפייני שינוי לכלי פיתוח. (Ib3236) - Constructor חדש ל-
PopupPropertiesשמאפשר שליטה מלאה בדגלים שלWindowManager.LayoutParams. (Ibb33e, b/312485503) - הוספנו את
DelegatableNode.requireLayoutCoordinates()כדרך לקבל אתModifier.Nodeהנוכחי שלLayoutCoordinatesבלי שתצטרכו לבטל אתonPlacedולאחסן את הקואורדינטות במאפיין בעצמכם. (Ia8657) - הוספנו את
DelegatableNode.currentLayoutCoordinatesכדרך לקבל אתModifier.Nodeהנוכחי שלLayoutCoordinatesבלי שתצטרכו לבטל אתonPlacedולאחסן את הקואורדינטות במאפיין בעצמכם. (Iaebaa) -
BasicTextField2וממשקי API קשורים בחבילהandroidx.compose.foundation.text2מועברים אלandroidx.compose.foundation.text. (I9f635) - הוספנו
ApproachLayoutModifierNodeAPI חדש כדי לתמוך ביצירת לוגיקה מותאמת אישית של גישה בצומת של משנה מפורש. נוסף גםDeferredTargetAnimationAPI ניסיוני חדש לאנימציות שהיעד שלהן לא ידוע בזמן יצירת המופע. (I60745) - ממשקי API חדשים של
Pathלשאילתת הכיוון של נתיב ולחילוץ קווי מתאר מ-Path. (I63d04) - נוספו הפונקציות
PathHitTestו-Path.contains(Offset)כדי לבדוק אםPathמכיל נקודה ספציפית. (I3b218) - ה-
TextLayoutResultחושף עכשיו את השיטהgetLineBaseline(lineIndex). כך אפשר לקרוא את בסיס השורה של שורה שרירותית בטקסט, בנוסף למאפייני הנוחות הקיימיםfirstBaselineו-lastBaseline. (Ide4e8, b/237428541) - הוספנו שיטה להשוואה רק של ההערות של שני
AnnotatedStrings. (I32659)
תיקוני באגים
- תוקנה בעיית תאימות לאחור ב-
SemanticsPropertyReceiver.performImeActionוב-SemanticsActions.PerformImeAction. (Id0528, b/322269946)
גרסה 1.7.0-alpha02
7 בפברואר 2024
androidx.compose.ui:ui-*:1.7.0-alpha02 מופץ. גרסה 1.7.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נפתרה בעיה בתאימות בינארית עם
SemanticsPropertyReceiver.performImeAction. (I65865, b/322269946) - הבונה
PopupPropertiesשמקבל פרמטרusePlatformDefaultWidthכבר לא ניסיוני. (I8f8d2) - נוספה גרסת עומס יתר של
ComposeTestRule.waitUntilשמקבלת תיאור מחרוזת של התנאי שייכלל בהודעת הזמן הקצוב לתפוגה. (I9413e) - API חדש של סמנטיקה
unset()להסרת מאפייני סמנטיקה שנוספו באותה שרשרת של משנים. מאפיין סמנטי חדשisOpaque. (I8c583, b/317966058, b/246056649) - הוסר
originalEventPositionמשיטת ההעתקה ב-API הציבורי שלPointerInputChange. (I7bead)
תיקוני באגים
- תוקן באג שקשור לנגישות, שאיפשר ללחוץ על רכיבים שאינם כרטיסיות או לחצני בחירה כשהם נבחרו. (I2181c)
- התיקון להוספת נקודות יופעל עכשיו כברירת מחדל ב-
VelocityTracker. אם יש בעיות, עדיין אפשר להשבית את התיקון על ידי הגדרתVelocityTrackerAddPointsFixכ-false. (Ib3877, b/269487059) - תוקנה בעיה של חוסר תאימות לאחור של קובץ בינארי ב-
TextStyleוב-ParagraphStyle. (I179f0, b/320819734)
External Contribution
- נוסף בנאי חדש
DialogPropertiesללא פרמטרים ספציפיים לפלטפורמה. (I45829) - נוסף בנאי חדש
PopupPropertiesללא פרמטרים ספציפיים לפלטפורמה. (I9a038)
גרסה 1.7.0-alpha01
24 בינואר 2024
androidx.compose.ui:ui-*:1.7.0-alpha01 מופץ. גרסה 1.7.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הורחב
ClipboardManagerעל ידי הוספתClipEntryו-ClipMetadataכדי לתמוך בתוכן שרירותי כמו תמונות. - הוספת
DeviceConfigurationOverrideAPI ל-ui-testכדי לאפשר שינוי מקומי של התנהגות התוכן שנבדק, למשל כדי לציין גודל, מיקום, כיוון פריסה, קנה מידה של גופן או ערכת נושא זמינים.
גרסה 1.6
גרסה 1.6.8
12 ביוני 2024
androidx.compose.ui:ui-*:1.6.8 מופץ. גרסה 1.6.8 מכילה את השמירות האלה.
תיקוני באגים
- תוקנו אי-התאמות בהתאמת גודל הגופן כשהתאמת גודל הגופן קטנה מהטבלה המוגדרת הנמוכה ביותר. במקרה הזה, אנחנו מבצעים אינטרפולציה בין קנה המידה הלינארי 1x לבין הטבלה המוגדרת הנמוכה ביותר, כך שגודל הגופן גדל באופן מונוטוני ככל שקנה המידה גדל. (Icbae3)
גרסה 1.6.7
1 במאי 2024
androidx.compose.ui:ui-*:1.6.7 מופץ. גרסה 1.6.7 מכילה את השמירות האלה.
גרסה 1.6.6
17 באפריל 2024
androidx.compose.ui:ui-*:1.6.6 מופץ. גרסה 1.6.6 מכילה את השמירות האלה.
תיקוני באגים
- תיקון של קריסה נדירה של
BasicTextField.
גרסה 1.6.5
3 באפריל 2024
androidx.compose.ui:ui-*:1.6.5 מופץ. גרסה 1.6.5 מכילה את השמירות האלה.
גרסה 1.6.4
20 במרץ 2024
androidx.compose.ui:ui-*:1.6.4 מופץ. גרסה 1.6.4 מכילה את השמירות האלה.
גרסה 1.6.3
6 במרץ 2024
androidx.compose.ui:ui-*:1.6.3 מופץ. גרסה 1.6.3 מכילה את השמירות האלה.
גרסה 1.6.2
21 בפברואר 2024
androidx.compose.ui:ui-*:1.6.2 מופץ. גרסה 1.6.2 מכילה את השמירות האלה.
גרסה 1.6.1
7 בפברואר 2024
androidx.compose.ui:ui-*:1.6.1 מופץ. גרסה 1.6.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיית תאימות לאחור ב-
SemanticsPropertyReceiver.performImeActionוב-SemanticsActions.PerformImeAction. (Ie0bb2, b/322269946) - פריסות מציגות עכשיו שגיאה בזמן המדידה אם אחת מהן מחזירה גודל גדול באופן חריג. שגיאה כזו מתרחשת בדרך כלל כשמשתמשים במדידה עם אילוצים מקסימליים באופן ישיר, בלי לבדוק אם יש
Constraints.Infinity. הבדיקה תעזור למפתחים למצוא בעיות בפריסה עם גודל שגוי, ולא בפריסה שמכילה אותה. (I339a9)
גרסה 1.6.0
24 בינואר 2024
androidx.compose.ui:ui-*:1.6.0 מופץ. גרסה 1.6.0 מכילה את השמירות האלה.
גרסה 1.6.0-rc01
10 בינואר 2024
androidx.compose.ui:ui-*:1.6.0-rc01 מופץ. גרסה 1.6.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- הטמעה של גרפיקה וקטורית שעברה אופטימיזציה כדי לשפר את הביצועים על ידי צמצום מספר ההרכבות מחדש.
גרסה 1.6.0-beta03
13 בדצמבר 2023
androidx.compose.ui:ui-*:1.6.0-beta03 מופץ. גרסה 1.6.0-beta03 מכילה את השמירות האלה.
תכונות חדשות
- עכשיו אפשר לנתק
LayoutCoordinatesבלי לנתק את הצומת. כדי למנוע את זה, משתמשים בכלי לבדיקת פריסות ב-Compose (If693)
תיקוני באגים
-
PlatformImeOptionsהיא עכשיו מחלקה קונקרטית במקום ממשק. (If40a4) - תוקן באג שגרם להרכבות נוספות במורד הזרם בגלל שערכים חדשים סופקו ל-
LocalSoftwareKeyboardControllerול-LocalTextInputServiceבכל פעם שהתבצעה הרכבה של רכיב הבסיס. (I42190, b/310510985)
גרסה 1.6.0-beta02
29 בנובמבר 2023
androidx.compose.ui:ui-*:1.6.0-beta02 מופץ. גרסה 1.6.0-beta02 מכילה את השמירות האלה.
גרסה 1.6.0-beta01
15 בנובמבר 2023
androidx.compose.ui:ui-*:1.6.0-beta01 מופץ. גרסה 1.6.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- המשנה
DragAndDropTargetמקבל עכשיו אתDragAndDropTargetהמקבל באופן מפורש, ויש לו ביטוי למדא כדי להצטרף לסשן של גרירה ושחרור. עכשיו יש שתי פונקציות ליצירת אובייקטDragAndDropModifierNode. אחד לקבלת העברות ואחד להעברת נתונים (I69481) - העדכון של
maximumFlingVelocityמיוצג כ-Float. עדכנו את התיעוד כדי להבהיר את המושגmaximumFlingVelocityunity. (I8adc7) - השם של
onDragAndDropStartבמפעלDragAndDropModifierNodeשונה ל-acceptDragAndDropTransfer.המשנהacceptsDragAndDropTransferנוסף ל-dragAndDropTargetכדי לאשר קבלה מסשן של גרירה ושחרור. פונקציית ה-lambda הזו מחזירהDragAndDropTargetאם יש עניין בהפעלת סשן של גרירה ושחרור. פונקציות למבדא אחרות לעיבוד אירועי גרירה הוחלפו בפונקציה הזו. נוספה פונקציית למבדאDragAndDropTargetכדי לקבל נתונים מסשנים של גרירה ושחרור (Iebf3a) הוסר
DragAndDropInfoכסוגDragAndDropModifierNode.dragמקבל עכשיו פרמטרים עבורtransferData, גודל העיטור וגרירת העיטורDrawScopelambdaל-
DragAndDropTargetיש methods לאירועי גרירה ושחרור ספציפיים, במקום method מופשטת אחתהפרמטר
onDragAndDropEventבפונקציית הפקטורי (factory) שלDragAndDropModifierNodeשונה ל-onDragAndDropStartכדי להבהיר שהערךDragAndDropTargetשסופק תקף רק לסשן מסוים של גרירה ושחרורהוסר
DragAndDropEventType(I645b1)השם של
PlatformTextInputModifierNode.runTextInputSessionשונה ל-establishTextInputSession. (I03cd0)שיפור השמות של ממשקי ה-API של הצמתים שניתן לעבור ביניהם, כדי שיהיו מובנים יותר. (Ia4474)
צריך להחליף את
OriginalTextב-TextSubstitution. (Ifa5a8)השם של
PlatformTextInputModifierNode.textInputSessionשונה ל-runTextInputSession. (Ie9c6b)הילדים של
SubcomposeLayout(ופריסות כמוLazyColumnשמבוססות עליו) שנשמרים לשימוש חוזר בעתיד נחשבים ללא פעילים. הוספנו ממשק API חדש לבדיקה,assertIsDeactivated(), כדי לבדוק צמתים כאלה. שאר ממשקי ה-API לבדיקה יסננו כברירת מחדל צמתים שהושבתו. (I2ef84, b/187188981)הוסרו
FocusDirection.Inו-FocusDirection.Out, במקומם נעשה שימוש ב-FocusDirection.Enterוב-FocusDirection.Exit(I2f660)ממשקי ה-API של Material
SwipeToReveal(לכרטיסים ולצ'יפים) מסתמכים עכשיו על API מבוסס-משבצות (כפי שמומלץ ב-Compose) במקום על מופעים מבוססי-מחלקות נתונים כדי ליצור את המשבצות האלה. זהו שינוי שעלול לגרום לבעיות, לכן מומלץ לעיין בהדגמה ובדוגמאות הקוד כדי ללמוד איך להשתמש ב-API החדש. (Ia8943)הקונסטרוקטור
FontStyle(int)הוצא משימוש. במקומו צריך להשתמש ב-FontStyle.Normalאו ב-FontStyle.Italic. (I66610)השם של הממשק
FontScalableשונה ל-FontScaling(Ie804a)
תיקוני באגים
SoftwareKeyboardController.show()לא תציג יותר את המקלדת הווירטואלית אם לא מתמקדים בעורך טקסט. (I2165a, b/301477279)- אירועים של מקש חומרה למעלה עבור מקשים שלא התקבלו באירוע למטה באותו תצוגת כתיבה יתעלמו עכשיו. (Ib37b4, b/305518328)
- הוספנו תמיכה ב-Renderer לטווח צבעים מתמשך ב-
ArcLine. (I4d5bb) - מטמיעים את הפונקציות equals ו-hashcode עבור
PageSize.Fixed. (Ie3ede, b/300134276) - תיקון בעיה בתאימות בינארית עם שינוי של Window Inset (Iee695)
- הסרנו את שכבת הליבה של Material עבור רכיב Chip/Button של Material3, כי המיקרו-בנצ'מרקים מראים ביצועים טובים יותר בלעדיה. (I55555)
- הערך
TestDispatchers שמועבר כ-effectContextלבדיקות של Compose ישמש עכשיו ליצירת הבדיקה ולמסגרת השעונים. (Ia7178)
גרסה 1.6.0-alpha08
18 באוקטובר 2023
androidx.compose.ui:ui-*:1.6.0-alpha08 מופץ. גרסה 1.6.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- השם של פונקציית ה-lambda
onDrawDragShadowב-Modifier.dragAndDrawSourceשונה ל-drawDragDecoration, והשם של פרמטר הגודל ב-DragAndDropInfoשונה ל-dragDecorationSize. (Id0e30, b/303904810) - הוספנו את
SemanticsNodeInteraction.isDisplayed()ו-SemanticsNodeInteraction.isNotDisplayed()כדי לבדוק אם צומת תואם גלוי או לא, בלי לבצע גם בדיקה לגביו. (I2c196, b/302100809) - הוספנו ערך מיוחד
UnspecifiedלשדותTextAlign,TextDirection,Hyphensו-LineBreakשלParagraphTextStyleכדי להחליף אתnull. מכיוון שהמחלקות האלה הן מחלקות מוטבעות, החלפת הערך nullable בערך Unspecified מונעת המרה של טיפוסים פרימיטיביים. העדכונים שבוצעו ב-TextStyleובסגנון Paragraph (פסקה) כוללים שינויים ב-Constructors, ב-getters ובשיטות אחרות, כך שהם יקבלו את הפרמטרים שצוינו כסוגים שאינם null. (I4197e, b/299490814) - הוספת
GoogleFontעומס יתר לקריאתGoogleFontמ-XML. (If8f59) - הגדרת
LoremIpsumPreviewParameterProviderככיתה פתוחה. (I41bf5, b/266918816, b/300116360)
תיקוני באגים
-
FontFamilyResolverמשתמש עכשיו ב-Dispatchers.Mainעבור קורוטינות לניהול מטמון. (Ie8dd9) -
AndroidViewBindingעכשיו, כשמשתמשים ב-commitNow(במקום ב-commitשבו השתמשו קודם), מתבצעת הסרה סינכרונית של מופעיFragmentשהוגדלו על ידי הכללתFragmentContainerViewבפריסה כחלק מ-onRelease. כך נפתרות בעיות בשיטה של עריכה בזמן אמת, שבה ההרכב מוחלף כשמתבצעים שינויים. (I58fbf)
גרסה 1.6.0-alpha07
4 באוקטובר 2023
androidx.compose.ui:ui-*:1.6.0-alpha07 מופץ. גרסה 1.6.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- השקנו את
PlatformTextInputMethodTestOverrideלכתיבת בדיקות עבור עורכי טקסט בהתאמה אישית. (Id159b) - נוספו
dragAndDropSourceמקש צירוף לשינוי התנהגות כדי להתחיל סשנים של גרירה ושחרור, וdragAndDropTargetמקש צירוף לשינוי התנהגות כדי לקבל נתונים מסשנים של גרירה ושחרור. (Ib7828, b/286038936) - נוספו אוספי
ColorListו-ColorSetשלא דורשים הקצאות. (I744bd) - נוסף
DisableNonLinearFontScalingInComposeדגל זמני להשבתת שינוי גודל הגופן הלא ליניארי. אם אתם צריכים זמן לנקות את הבחנים, אתם יכולים להגדירDisableNonLinearFontScalingInCompose = true. הדגל הזה יוסר ב-Compose 1.6.0-beta01. (Ic9486)
תיקוני באגים
- ניתוח אופטימלי של פריטים גרפיים וקטוריים ב-XML. (Ibb015)
גרסה 1.6.0-alpha06
20 בספטמבר 2023
androidx.compose.ui:ui-*:1.6.0-alpha06 מופץ. גרסה 1.6.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- אופטימיזציות נוספות לסמלי Material. (I3e08d)
- נוספה אפשרות לעבור למעלה או למטה בעץ של שינוי המאפיינים כדי למצוא צמתים דומים. (I2d234)
- נוספה קריאה חוזרת (callback) של
onRestoreFailed()לערך המקדםfocusRestorer()(Ie1d43) - נוספו הערות של androidx ל-API שונים של גרפיקה כדי לציין
ColorInt,FloatRange,IntRange,Sizeועוד. (Id65c8, b/290950582) - הוספת
showSystemUi=trueלהגדרה שלPreviewScreenSizes(Ib61d3)
שינויים בהתנהגות
- התכונה 'יצירת אימייל' משתמשת עכשיו בהתאמת גודל גופן לא לינארית, כדי לשפר את הקריאות והנגישות. אם קנה המידה של הגופן גדול מ-100% בהגדרות המערכת, הגודל של טקסט קטן יגדל באופן רגיל, אבל הגודל של טקסט שכבר גדול יגדל רק קצת. בנוסף, גובה השורה שמוגדר ב-SP יותאם באופן אוטומטי כדי לשמור על יחס פרופורציונלי לגובה המיועד של 100%. מידע נוסף זמין במאמר בנושא שיטות מומלצות לשינוי גודל הגופן. (I11518)
גרסה 1.6.0-alpha05
6 בספטמבר 2023
androidx.compose.ui:ui-*:1.6.0-alpha05 מופץ. גרסה 1.6.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הפעלת צילום תוכן ב-
AndroidComposeViewAccessibilityDelegateCompat. (Ib2969) - המהירויות של תנועות ההטלה ברכיבי התצוגה כמו
ScrollViewו-RecyclerViewמוגבלות ל-ViewConfiguration.ScaledMaximumFlingVelocity. הגרסה שלmaximumFlingVelocityשכלולה עכשיו בכלי הכתיבה חלה עלDraggable. (Ibf974) - הוספנו פיגומים ראשוניים לתמיכה בממשקי API של פלטפורמות לגרירה ולשחרור. (If84ce)
- הוספת
deviceIdל-RotaryScrollEvent(Iba3bf) - עדכון של
ui-toolingDevices API כך שיכלול מכשירים חדשים יותר (Ib25b4)
גרסה 1.6.0-alpha04
23 באוגוסט 2023
androidx.compose.ui:ui-*:1.6.0-alpha04 מופץ. גרסה 1.6.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- נוספה שיטה להשבתה של
ReusableComposition, שמאפשרת להסיר תצפיות אבל לשמור את הצמתים במקומם. אפשר להפעיל מחדש את הקומפוזיציה שהושבתה על ידי התקשרות אלsetContent. (Ib7f31) - הוספת ממשק
ReusableCompositionלניהול מחזור החיים של קומפוזיציות משנה ולשימוש חוזר בהן. (I812d1, b/252846775) -
Modifier.focusGroupהועלה לגרסאות יציבות של ממשקי API. (I7ffa3) - נוספו הערות של androidx ל-API שונים של גרפיקה כדי לציין
ColorInt,FloatRange,IntRange,Sizeועוד. (I70487, b/290950582) - עדכנו את
ColorFilterAPI כך שיכלול סוגים קונקרטיים של מחלקות משנה, כדי לשפר את יכולת הבדיקה של הפרמטרים. (I5fe29) - הוספנו את הספרייה wear-tooling-preview כדי להציג רשימה של מכשירי Wear תקינים שאפשר להשתמש בהם לתצוגות מקדימות של ממשקי משתמש (Ib036e)
- יצרנו את הממשק
FontScalableכדי לטפל בחלק של שינוי גודל הגופן בממשק הצפיפות. (I2cf3f)
גרסה 1.6.0-alpha03
9 באוגוסט 2023
androidx.compose.ui:ui-*:1.6.0-alpha03 מופץ. גרסה 1.6.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- סוג חדש של מעבר כניסה/יציאה שמשנה את גודל התוכן בהתאם לגודל של מאגר התגים של האנימציה במהלך אנימציית הכניסה והיציאה.
LookaheadScopeהממשק והכיף המודולריים יציבים עכשיו. (Ifb2ce) - הוספנו תמיכה בהגדרה של
privateImeOptions(Idb772)
תיקוני באגים
- החל מעכשיו,
PopupPositionProvider.calculatePositionיעודכן אוטומטית את המיקום של החלון הקופץ כשמצב הקריאה בחישוב משתנה. (I676a1, b/292257547) - תוקנה בעיה שבה שדות טקסט הציגו מקלדת ואפשרו עריכה כש-
readOnlyהיה true. בנוסף, תוקנה בעיה שגרמה לכך שהמקלדת לא הוצגה כשreadOnlyהשתנה מ-true ל-false בזמן שהיה מיקוד. (I34a19, b/246909589) - הרחבנו את השימוש באסרטיבים גלובליים בבדיקות ממשק משתמש. (I1f90d)
גרסה 1.6.0-alpha02
26 ביולי 2023
androidx.compose.ui:ui-*:1.6.0-alpha02 מופץ. גרסה 1.6.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף ממשק לאיתור שירותים שאפשר להטמיע באמצעות הטמעה של Composition, שמאפשרת הטמעה של Composition שמבצעת חיפושים של שירותים באמצעות שירות אחר של Composition. אין לקרוא לפונקציה הזו ישירות, והיא משמשת ליצירת ממשקי API ניסיוניים בזמן הריצה שאפשר למצוא מגרסאות עוטפות של הרכיב, כמו מודול ממשק המשתמש. (I296b9)
- עיצוב מחדש מלא של
PlatformTextInput*API. (I6c93a, b/274661182, b/267235947, b/277380808) - התכונות
SoftwareKeyboardControllerו-LocalSoftwareKeyboardControllerכבר לא ניסיוניות. בנוסף,LocalSoftwareKeyboardControllerהוא עכשיוCompositionLocal. (I4c364) - הגרסאות
LookaheadLayoutו-LookaheadLayoutScopeהוצאו משימוש בכמה גרסאות קודמות, ועכשיו הן הוסרו. ממשקי ה-API החלופיים הםLookaheadScopeשיכולים לפעול עם כל פריסה. (I12ac3) - הוספנו את
SemanticsNodeInteraction.requestFocusכדרך נוחה יותר לבקש התמקדות בבדיקות. (Ie8722) - הוספנו ממשקי API ניסיוניים לרישום של טענות גלובליות, לשימוש עתידי במסגרות בדיקה. (I12d77)
תיקוני באגים
- הקריאה הראשונה של הקריאה החוזרת (callback) של
AndroidViewתידחה עד שהתצוגה תצורף, במקום לפעול כשהקומפוזיציה שמציגה אתAndroidViewמוחלת.updateתוקנה באג שבו הקריאה החוזרתupdateלא בוטלה אם מצב שהיא קראה השתנה מיד על ידי אפקט. (Ie9438, b/291094055)
גרסה 1.6.0-alpha01
21 ביוני 2023
androidx.compose.ui:ui-*:1.6.0-alpha01 מופץ. גרסה 1.6.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- תמיכה בחיפוש קדימה ב-
LazyList. הפעולה הזו מאפשרת ל-LazyListבמעבר הצפייה קדימה לדלג על כל אנימציה (למשל, אנימציה של מיקום פריט,AnimatedVisibilityוכו') ולחשב את הגודל והמיקום של הצפייה קדימה עבור כל רכיבי הצאצא. אחרי שלב התכנון, ילדים שלLazyListיכולים להנפיש באופן עצמאי את המציאות כפי שהיא נראית בשלב התכנון.
שינוי בהתנהגות: הערך של includeFontPadding הוא עכשיו false כברירת מחדל ב-Compose
הערך של includeFontPadding הוא עכשיו False כברירת מחדל (21d806) בכתיבת הודעה.
includeFontPadding הוא מאפיין מדור קודם שקובע אם להוסיף מרווח פנימי נוסף מעל השורה הראשונה ומתחת לשורה האחרונה של הטקסט, כדי להתאים לתווים שעשויים לחרוג מעל או מתחת לקו הבסיס של הטקסט.
עדכון הגרסה הזו של Compose ישנה את אופן העיבוד של כל הטקסטים בממשק המשתמש שלכם. העדכון יסיר את הריווח הנוסף מעל השורה הראשונה ומתחת לשורה האחרונה של כל טקסט שמוצג.
השינויים צריכים להיות מינימליים, בהתאם לדרישות ממשק המשתמש ולמדדי הגופן שבהם אתם משתמשים. עם זאת, יכול להיות שתיתקלו בחסימות כמו: - בדיקות צילומי מסך פגומות. אם צריך, מתקנים את ממשק המשתמש ויוצרים מחדש את תמונות הזהב. – הטקסט לא מיושר בצורה מושלמת. מסירים את כל השוליים השליליים המותאמים אישית או מוסיפים שוליים לפי הצורך.
אפשר להביע הסכמה לשימוש ב-includeFontPadding באמצעות PlatformTextStyle לכל טקסט:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
אתם יכולים להביע הסכמה לשימוש ב-includeFontPadding בכל ההודעות שלכם על ידי הגדרת סגנונות Material. שימו לב ששמות הפרמטרים שונים ב-M2 וב-M3.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
מידע נוסף על Compose includeFontPadding זמין בתיעוד למפתחים ובפוסט הזה בבלוג.
אם נתקלתם בבעיות או בבאגים שקשורים לשינוי הזה, אתם יכולים לדווח על באג באמצעות כלי המעקב אחר בעיות.
שינויים ב-API
- תמיכה ב-
InputConnection#requestCursorUpdates(I0c69b) - נוספו
FocusRequester.saveFocusedChildו-FocusRequester.restoreFocusedChild(Ic557e, b/272302679, b/275157318) - הוספת
ResourceResolutionExceptiontype כדי לעטוף את ה-throwables שמופעלים כשמנסים לטעון נכסי bitmap עם תיאור של נתיב הנכס שלא נטען. (I19f44, b/230166331, b/278424788) - נגישות אופטימלית לשיפור הביצועים והקצאות הזיכרון. (Iede48)
- נוספו מאפיינים ופעולות סמנטיים לתמיכה בתרגום טקסט. (I4a6bc)
- מאפיין חדש ב-
IntrinsincMeasureScopeוההטמעות שלו (למשל,MeasureScope) כדי לציין אם המעבר הנוכחי למדידה הוא מעבר צופה פני עתיד. (I7a812) - עדכנו את ה-API של
DrawScopeכדי להוסיף את האפשרות לטרגט מחדש את העיבוד לקנבס אחר עם צפיפות, כיוון פריסה וגודל חלופיים. - בוצע עדכון של
DrawContextכדי לתמוך בהגדרה של צפיפות וכיוון הפריסה, וגם כדי לאפשר הגדרה של אזור הציור. (Ie1f9b, b/225408150) - נוסף
Paragraph#fillBoundingBoxesלחישוב תיבות תוחמות של תווים. (If30ee) - נוסף קבוצה של
MultiPreviewsנפוצים (Ia5a27)
תיקוני באגים
- נוסף ממשק
FocusTargetModifierNodeשאפשר להשתמש בו כדי ליצורFocusTargetבהתאמה אישית. (I9790e) - השם של הפרמטרים
fallback*ב-constructorTextMeasurerהשתנה ל-default*. (I940a5) - השם של
SemanticsPropertyReceiver.performImeActionשונה ל-onImeActionושלSemanticsActions.PerformImeActionשונה ל-OnImeAction. (I8e841) - נוסף גלגל כדי להבדיל בין גלילה בעכבר לבין גרירה בגלילה מקוננת (במיוחד ב-
NestedScrollConnection). (Ie57e4) - הוספנו API
asComposePaintכדי להחליף אתtoComposePaint, כי האובייקט שמוחזר עוטף אתandroid.graphics.Paintהמקורי (I22b4c) - הוצאה משימוש של
SemanticsProperties.imeActionוהחלפה בפרמטר חדש ל-SemanticsActions.performImeAction. (I4a587) - הוספנו תמיכה בבחירה באמצעות העכבר. כשמשתמשים בבחירה מבוססת מגע, הבחירה תתרחב לפי מילה ותצטמצם לפי תו. (Ic0c6c, b/180639271)
- ה-methods של
Paragraphשבעבר הציגו את השגיאהAssertionErrorעבור היסטים מחוץ לגבולות, מציגות עכשיו את השגיאהIllegalArgumentException, כמו שקורה ב-MultiParagraph. (I549d3, b/243338896)
גירסה 1.5
גרסה 1.5.4
18 באוקטובר 2023
androidx.compose.ui:ui-*:1.5.4 מופץ. גרסה 1.5.4 מכילה את השמירות האלה.
גרסה 1.5.3
4 באוקטובר 2023
androidx.compose.ui:ui-*:1.5.3 מופץ. גרסה 1.5.3 מכילה את השמירות האלה.
תיקוני באגים
- (b/301209788)
TextFieldלפעמים החיל באופן שגוי פקודות קודמות כשמתמקדים ומזינים קלט קוריאני, מה שמוביל לאובדן תווים.
גרסה 1.5.2
27 בספטמבר 2023
androidx.compose.ui:ui-*:1.5.2 מופץ. גרסה 1.5.2 מכילה את השמירות האלה.
תיקוני באגים
- נוסף פתרון עקיף לקריסות כשניגשים ל-API של גלילה לנגישות משרשור ברקע.
- תיקון של צמתים לא מצורפים שנוספים לעץ הסמנטיקה.
גירסה 1.5.1
6 בספטמבר 2023
androidx.compose.ui:ui-*:1.5.1 מופץ. גרסה 1.5.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה שדות טקסט הציגו מקלדת ואפשרו עריכה כש-
readOnlyהיה true. בנוסף, תוקנה בעיה שגרמה לכך שהמקלדת לא הוצגה כשreadOnlyהשתנה מ-true ל-false בזמן שהיה מיקוד. (I34a19, b/246909589)
גרסה 1.5.0
9 באוגוסט 2023
androidx.compose.ui:ui-*:1.5.0 מופץ. גרסה 1.5.0 מכילה את השמירות האלה.
גרסה 1.5.0-rc01
26 ביולי 2023
androidx.compose.ui:ui-*:1.5.0-rc01 מופץ. גרסה 1.5.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה שקורית כשמשתמשים ב-
SubcomposeLayoutבתוךmovableContentOf().
גרסה 1.5.0-beta03
28 ביוני 2023
androidx.compose.ui:ui-*:1.5.0-beta03 מופץ. גרסה 1.5.0-beta03 מכילה את השמירות האלה.
תיקוני באגים
- נוסף הממשק FocusTargetModifierNode שאפשר להשתמש בו כדי ליצור FocusTarget מותאם אישית. (Ifb1d6)
- תוקנה בעיה ברכיבים הניתנים להרכבה של חלונות דו-שיח וחלונות קופצים, שיכולה לגרום לכך שגודל חלון הצאצא לא ישתנה כמצופה כשלוחצים על
usePlatformDefaultWidth=true. (I112ee)
גרסה 1.5.0-beta02
7 ביוני 2023
androidx.compose.ui:ui-*:1.5.0-beta02 מופץ. גרסה 1.5.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף
asComposePaintAPI כדי לאפשר שימוש במופעandroid.graphics.Paintב-Compose
תיקוני באגים
- הוספנו API
asComposePaintכדי להחליף אתtoComposePaint, כי האובייקט שמוחזר עוטף אתandroid.graphics.Paintהמקורי (I22b4c)
גרסה 1.5.0-beta01
24 במאי 2023
androidx.compose.ui:ui-*:1.5.0-beta01 מופץ. גרסה 1.5.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- הסרנו הקצאות בחיבור מחדש, באנימציות של צבעים וב-
AndroidComposeView(Ib2bfa) - הוספת פונקציית עזר
CacheDrawModifierNode()כדי לאפשר הקצאת הרשאות (Icf8f9) - הוספנו את המאפיין
isLookingAhead, שאפשר לגשת אליו מ-MeasureScope, כדי לצפות בתוצאות של חיפוש מראש ולהשפיע על המעבר הראשי אם רוצים. (Ibf4c3) - מאפיין סמנטי חדש
traversalIndex, מספר עשרוני שמשמש לסידור מחדש של צמתים ב-TalkBacktraversal (ערכים נמוכים מופיעים לפני). (I9a81b, b/186443263) - שינוי השם של מאפיין הסמנטיקה
isContainerל-isTraversalGroup(I121f6) - מעכשיו ל-
ColorProducerישoperator fun invokeבמקוםproduce(I4a9a2) - מוסיפים את
Pathtransform API כדי להחיל טרנספורמציות של תרגום/שינוי גודל/סיבוב על אובייקטים של נתיבים. (I23434, b/233772232) - השיטה של
ColorProducerנקראתproduce. (I78bde) - שינוי השם של
toFrameworkColorSpaceלtoAndroidColorSpace(I4f547) - שינוי השם של
ColorLambdaלColorProducer. (I73b1a) - הוספנו ממשקי API להמרה בין סוגי מרחבי צבעים ב-Android וב-Compose. (Ie7db4, b/279979665)
- נוסף פרמטר צבע ל-
BasicTextכדי לאפשר אנימציה יעילה או הגדרת צבע טקסט. (Iffd88, b/246961787) - השם של
TextRange.constrainשונה ל-TextRange.coerceIn. (I31be2) - הוספנו את האירוע
TextStyle.merge(...)שעבר אופטימיזציה עם רשימה מלאה של פרמטרים. (Iad234, b/246961787) - ייצבנו הרבה ממשקי API של טקסט, כולל
Brush,DrawStyle,TextMotion,DrawScope.drawText,Paragraph.paint(Brush),MultiParagraph.paint(Brush). (I2f740, b/261581564, b/261581931, b/261561245) - המאפיין
PlatformTextStyle.includeFontPaddingכבר לא מוצא משימוש. הכוונה המקורית שלנו הייתה להסיר את השדה, אבל המשוב שקיבלנו מראה שמפתחים צריכים את אפשרות ההגדרה הזו. לכן, הסרנו את ההוצאה משימוש של השדה (I98e96, b/277703184) - נוספה שיטת
TextRange.constrainציבורית. (I97912) - עכשיו אפשר לפתוח
UrlAnnotationב-AnnotatedStringבאמצעות שירותי נגישות כמוTalkBack. (If4d82, b/253292081) - נוספה פעולת הסמנטיקה
InsertTextAtCursorלשדות טקסט. (I11ed5) -
LineHeightStyle.Alignment(topRatio)constructor מקודם ל-API יציב. (I79c32, b/261565383) - ממשקי ה-API של
TextMeasurerוממשקי API קשורים כבר לא ניסיוניים. (I74647, b/261581753) - נוספה הפעולה הסמנטית
PerformImeActionלהפעלת פעולת ה-IME בצמתים של עורך טקסט. (Ic606f, b/269633506) - ממשקי ה-API של
PlatformTextInputכבר לא ניסיוניים ב-Android. (I668eb) - הערך של שם הפרמטר עבור
Enum.valueOfהשתנה (Ia9b89) - יותר חריגים שנוצרו מ-enum valueOf (I818fe)
- השקנו ממשק API חדש ברמה נמוכה,
PlatformTextInputAdapter, ליצירת הטמעות מותאמות אישית של הזנת טקסט שמתקשרות ישירות עם ממשקי API של הפלטפורמה. (I58df4) - נוסף הפרמטר
BlendModeלשיטותDrawScope.drawText,Paragraph.paintו-MultiParagraph.paintכדי לתמוך באלגוריתמים שונים של מיזוג כשמציירים טקסט ב-Canvas. (I57508) - שינוי השם של
Font.MaximumAsyncTimeoutלFont.MaximumAsyncTimeoutMillis. שינוי שם בלבד. (I07af5) - ערכי DPI מעודכנים של
@Previewמכשירי הפניה (Id6151, b/254528382) - מוסיפים פרמטרים של
brush,alphaל-BasicTextכדי לאפשר אנימציה יעילה או הגדרת מברשת טקסט. - הגדרת סוגי למדה ללא תיבות עבור Float, Double, Long, Int, Short ב- :ui:ui-unit (I6f18d, b/246961787)
תיקוני באגים
- הוסרו הקצאות מרובות במעקב אחר מהירות המצביע (I26bae)
- הפחתת ההקצאות בניהול הפריסה והקלט של המצביע (I5333a)
- אופטימיזציה של השימוש בזיכרון הווקטורי ושל עיבוד הפריימים הראשונים (I2f3c6)
- הסרת הקצאות כשמציירים קווים ונקודות באמצעות Canvas (I9f535)
- הוספת מסמכים ל-
AndroidFont.fontVariationSettings(I7d9e2)
External Contribution
- שיפור הביצועים והפחתת ההקצאות בממשקי Vector API (I906cb)
גרסה 1.5.0-alpha04
10 במאי 2023
androidx.compose.ui:ui-*:1.5.0-alpha04 מופץ. גרסה 1.5.0-alpha04 מכילה את השמירות האלה.
תכונות חדשות
Modifier.Nodeשיפורים בהענקת הרשאות הוספנו יכולת משופרת להעניק הרשאות למופעים אחרים שלModifier.NodeמתוךDelegatingNode. אפשר לעשות את זה באמצעות ממשקי ה-APIdelegateו-undelegate. לפני השינוי הזה, כל API מצומת ההקצאה היה צריך להיות מוקצה במפורש לצומת המוקצה. אחרי השינוי הזה, הממשקים של הצמתים יוקצו באופן מרומז, אלא אםDelegatingNodeמבטל אותם באופן מפורש. (67352bc)
שינויים ב-API
- הצגת
NestedScrollModifierNode,NestedScroll Modifier.Nodeשאפשר להקצות לו הרשאות. (I69513) - נוספו הפרמטרים
onResetו-onReleaseלקומפוזבלAndroidViewBinding, בדומה לקומפוזבלAndroidView, והופעלת תמיכה בשימוש חוזר בתצוגה באמצעותViewBinding. (I00b1e, b/276802519) - עדכנו את Compose Path API כדי לתמוך בפעולות של הרצה אחורה, וכך לתמוך בתרחישי שימוש של מניפולציה תכופה של נתיבים עם שימוש חוזר מהיר יותר. (I7b797)
- הוספנו את האירוע
TextStyle.merge(...)שעבר אופטימיזציה עם רשימה מלאה של פרמטרים. (Iad234, b/246961787) - ייצבנו הרבה ממשקי API של טקסט, כולל
Brush,DrawStyle,TextMotion,DrawScope.drawText,Paragraph.paint(Brush),MultiParagraph.paint(Brush). (I2f740, b/261581564, b/261581931, b/261561245) - המאפיין
PlatformTextStyle.includeFontPaddingכבר לא מוצא משימוש. הכוונה המקורית שלנו הייתה להסיר את השדה, אבל המשוב שקיבלנו מראה שמפתחים צריכים את אפשרות ההגדרה הזו. לכן, הסרנו את ההוצאה משימוש של השדה (I98e96, b/277703184)
תיקוני באגים
- תוקנה רגרסיה שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי רכיב ה-Composable
Dialog. (I82551, b/262140644)
גרסה 1.5.0-alpha03
19 באפריל 2023
androidx.compose.ui:ui-*:1.5.0-alpha03 מופץ. גרסה 1.5.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- התנהגות ברירת מחדל חדשה עבור
SubcomposeLayoutב-LookaheadScope:SubcomposeLayoutsשלא כוללים משבצות מותנות (למשלTabRow,Scaffold,BoxWithConstraintsוכו') פועלים עכשיו בצורה טובה עם אנימציות של חיפוש מראש.
שינויים ב-API
- ערך ברירת מחדל חדש
intermediateMeasurePolicyשמשתמש מחדש במדיניות המדידה ממעבר החיפוש מאפשר לסוגי משנה שלSubcomposeLayoutללא משבצות מותנות, כמוScaffold,TabRowו-BoxWithConstraints, לפעול עם חיפוש מראש כברירת מחדל. (Id84c8) - הכלי ליצירת קומפוזיציה מחדש שנוצר לחלון ב-Android יחסום עכשיו רק שיחות אל
withFrameNanosבמקום את כל הקומפוזיציה, כשהוא יקבל התראה עלON_STOP. המשמעות היא שחלונות שמשויכים לפעילויות שהופסקו ימשיכו להרכיב מחדש שינויים בנתונים, אבל האנימציות או כל קריאה אחרת שלwithFrameNanosייחסמו. (Id9e7f, b/240975572) - שינויים
motionEventSpyבגרסה היציבה. (Ic5ec4, b/261560988) - נוספה שיטת
TextRange.constrainציבורית. (I97912) - הוצאת
PlatformTextStyle.includeFontPaddingמשימוש כבר לא רלוונטית, כדי לעודד מפתחים להשתמש ב-API הזה לתאימות כדי לעבור לבדיקה ולהגדיר את הערךincludeFontPaddingכ-false. (I98e96, b/277703184)
גרסה 1.5.0-alpha02
5 באפריל 2023
androidx.compose.ui:ui-*:1.5.0-alpha02 מופץ. גרסה 1.5.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
-
SubcomposeLayoutAPI חדש שמקבל מדיניות נוספת של אמצעי ביניים לטיפול בלוגיקה של מדדים או פריסות במהלך אנימציות שמבוססות על חיזוי. (I017d3) - ה-PointerInput הוא עכשיו עצלן ומשתמש ב-Modifier.Node לשיפור הביצועים (מידע נוסף על השינוי הקל בהתנהגות). (15dab9)
- שינוי ממשקי API ניסיוניים ליציבים באמצעות אירועים מרכזיים. (I9c7d8, b/261566839, b/261567368)
- שינוי ממשקי API ניסיוניים ליציבים ב-
PointerInputChange. (I1b543, b/261560988, b/261565762, b/261565749) - מוסיפה דרך ליצור מופע של
SuspendingPointerInputModifierNodeלהטמעות מורכבות יותר שלModifier.Node. (Ic4933) - עכשיו אפשר לפתוח
UrlAnnotationב-AnnotatedStringבאמצעות שירותי נגישות כמוTalkBack. (If4d82, b/253292081) - נוסף API ליירוט מקשי חומרה לפני שהם נשלחים למקלדת הווירטואלית (I4f4c6, b/186800395)
- נוספה פעולת הסמנטיקה
InsertTextAtCursorלשדות טקסט. (I11ed5) - פעולות בדיקה שקשורות לטקסט (למשל
performTextInput) יבקשו עכשיו מיקוד ישירות, באמצעות פעולת הסמנטיקה, במקום ללחוץ על השדה. (I6ed05)
תיקוני באגים
- כדי להשתמש בפעולות לבדיקת טקסט, צריך להפעיל שדות טקסט. (Iab328)
גרסה 1.5.0-alpha01
22 במרץ 2023
androidx.compose.ui:ui-*:1.5.0-alpha01 מופץ. גרסה 1.5.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- השינוי Modifier.intermediateLayout לא דורש עכשיו LookaheadScope מפורש. בלוק המדידה ב-intermediateLayout מכיל IntermediateMeasureScope כמקבל, שמספק CoroutineScope, LookaheadScope ו-MeasureScope נוחים.(Ibe2e5)
- ה-Layout LookaheadLayout הוחלף ב-Scope LookaheadScope, שכבר לא מוגדר כ-Layout. כך אפשר לשלוט ישירות בתוכן של רכיב צאצא ב-LookaheadScope באמצעות MeasurePolicy של רכיב האב. (Ibe2e5)
- הוספה של
Modifier.Node#coroutineScopeכדי לאפשר ל-Modifier.Nodes להפעיל קורוטינות. (I76ef9) - מאפשרים ל-Modifier.Nodes לקרוא CompositionLocals על ידי הטמעה של הממשק CompositionLocalConsumerModifierNode. (Ib44df)
- העברה של מחלקה עם הערה @Deprecated אל מאפיין. (I882d1)
גרסה 1.4
גרסה 1.4.3
3 במאי 2023
androidx.compose.ui:ui-*:1.4.3 מופץ. גרסה 1.4.3 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה יכול להיות שהפריסה של
AndroidViewלא תהיה נכונה כשמשתמשים בה עם מקשי שינוי מסוימים. (I4dc77, b/274797771) - תוקן באג בחיפוש פוקוס דו-ממדי שהשפיע על
DropDownתפריטים (b/276811828) - תוקן באג במאפייני כניסה/יציאה מותאמים אישית של מיקוד, שגרם להפעלת בלוק הכניסה/יציאה רק בפעם הראשונה שהופעלה פונקציית ה-lambda (b/277234245)
- תוקנה רגרסיה במערכת המיקוד שגרמה לקריסה במהלך קריאה של
focusProperties. (b/271324781, b/274897776)
גרסה 1.4.2
19 באפריל 2023
androidx.compose.ui:ui-*:1.4.2 מופץ. גרסה 1.4.2 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה
AndroidViewלא השתמש מחדש במאפייני השינוי שלו בצורה נכונה, מה שיכול היה לגרום להתנהגות לא צפויה ולקריסות. (Ib67ee, b/275919849) - תוקנה רגרסיה שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי ה-composable
Dialog(I82551, b/262140644)
גרסה 1.4.1
5 באפריל 2023
androidx.compose.ui:ui-*:1.4.1 מופץ. גרסה 1.4.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה
ParentDataModifierלא השפיע עלAndroidView(b/274797771)
גרסה 1.4.0
22 במרץ 2023
androidx.compose.ui:ui-*:1.4.0 מופץ. גרסה 1.4.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.3.0
- נוסף ממשק API חדש של
PinnableContainerשמאפשר להצמיד פריטים ברשימה עצלה, כדי שהם לא יימחקו כשגוללים אותם מחוץ לגבולות. לדוגמה,Modifier.focusable()משתמש במנגנון הזה כדי להצמיד את הפריט שמוצמד כרגע. (Ib8881, b/259274257, b/195049010) - מערכת המיקוד נכתבה מחדש באמצעות ממשקי ה-API הניסיוניים החדשים של
Modifier.Node. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - נוספה תכונת הסמנטיקה
IsContainerבפלטפורמות השונות של Google. הנכס הזה ישמש בשינוי מאוחר יותר שקובע את סדר המעבר על סמך המשמעות הסמנטית של רכיבים כמו משטחים. (I63379) - נוסף תפקיד נגישות חדש
DropdownList. אפשר להשתמש בזה כדי לשכפל את ההתנהגות שלTalkBackכשמתמקדים ב-android.widget.Spinner. (I177e5, b/236159001) - עכשיו אפשר להשתמש ב-
PlatformTextStyle(emojiSupportMatch)כדי להשבית את העיבוד של תמיכת האמוג'י לפסקה אחת. (Ia7100, b/139326806) - בדיקות של ממשק משתמש ב-Android Compose יפעילו עכשיו מעברים של פריסות לכל פריים כשמבצעים פריים כדי להגיע למצב סרק (לדוגמה, באמצעות
waitForIdle). יכול להיות שהשינוי הזה ישפיע על בדיקות שמאמתות פריים ספציפי של אנימציות פריסה. (I8ea08, b/222093277) - נוספה התכונה הניסיונית
TextMotionל-TextStyleכדי להגדיר אם הטקסט יהיהStatic(default)או מונפש. משתמשים ב-TextMotion.Animatedאם הטקסט הולך להיות מוגדל, מתורגם או מסובב באמצעות אנימציה. (I24dd7)
גרסה 1.4.0-rc01
8 במרץ 2023
androidx.compose.ui:ui-*:1.4.0-rc01 מופץ. גרסה 1.4.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- נוספה פונקציית
AndroidViewcomposable עם עומס יתר, שמקבלת את הפרמטרonReset. הוא מאפשר לעשות שימוש חוזר במופעים של View כשצומת שלהם בקומפוזיציה מושלך ונעשה בו שימוש חוזר באופן תואם. הנתונים האלה שימושיים במיוחד לLazyRowsולLazyColumnsשל הצפיות. (I3f10d, b/230099236) - השקנו ממשק API חדש ברמה נמוכה,
PlatformTextInputAdapter, ליצירת הטמעות מותאמות אישית של הזנת טקסט שמתקשרות ישירות עם ממשקי API של הפלטפורמה. (I58df4)
תיקוני באגים
- הפעולה הסמנטית של
BasicTextField'sSetTextתעדכן עכשיו את מאגר הטקסט באמצעות אותו נתיב קוד כמו עדכוני IME ופונקציות הבדיקה (לדוגמה,performTextReplacement). - פונקציות בדיקת הטקסט
performTextClearance,performTextReplacementו-performTextSelectionמשתמשות עכשיו ב-SemanticsActions. (I0807d, b/269633168, b/269624358)
גרסה 1.4.0-beta02
22 בפברואר 2023
androidx.compose.ui:ui-*:1.4.0-beta02 מופץ. גרסה 1.4.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- הסרנו את
modifierElementOf()API. במקום זאת, צריך להשתמש בהרחבה ישירה מ-ModifierNodeElement. (I2256b) - נוסף קריאה חוזרת (callback) חדשה
Modifier.Node.onReset()שמאפשרת לאפס מצב מקומי מסוים כדי לטפל כמו שצריך במקרה שבו נעשה שימוש חוזר ב-Layout(למשל, כפריט שלLazyColumn). תוקןFocusTargetModifierNodeכדי לאפס כמו שצריך את מצב המיקוד. (I65495, b/265201972) - נוסף הפרמטר
BlendModeלשיטותDrawScope.drawText,Paragraph.paintו-MultiParagraph.paintכדי לתמוך באלגוריתמים שונים של מיזוג כשמציירים טקסט ב-Canvas. (I57508)
תיקוני באגים
- שופר האלגוריתם של סדר המיקוד לנגישות. לדוגמה, סרגלי כלים עליונים/תחתונים נקראים לעיתים קרובות ראשונים/אחרונים בהתאמה (74e9c5)
גרסה 1.4.0-beta01
8 בפברואר 2023
androidx.compose.ui:ui-*:1.4.0-beta01 מופץ. גרסה 1.4.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- השם של
PinnableContainer.PinnedHandle.unpin()שונה לrelease()(I4667a) - הוספנו את
waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExistsו-waitUntilDoesNotExistכ-API ניסיוני ל-ComposeTestRule, והרחבנו אתwaitUntilAPI כך שיקבל כל התאמה וכל מספר של צמתים. מידע נוסף זמין בכתובתComposeTestRule. (Ifa1b9, b/226934294) - שינוי השם של
Font.MaximumAsyncTimeoutלFont.MaximumAsyncTimeoutMillis. (I07af5) - הוסר
GoogleFont.Provider.AllFontsListUriוקושרו אליו ב-ktdoc. (I16f29)
תיקוני באגים
- הוספת מסמכים ל-
AndroidFont.fontVariationSettings(I7d9e2)
גרסה 1.4.0-alpha05
25 בינואר 2023
androidx.compose.ui:ui-*:1.4.0-alpha05 מופץ. גרסה 1.4.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו עומסים חדשים לניסויים לפונקציה
runComposeUiTestולפונקציותcreate*ComposeRuleשמקבלות פרמטרים מסוגCoroutineContext. ההקשר ישמש להרכבת הבדיקה ולכל קריאות ה-LaunchedEffectוה-rememberCoroutineScope()בהרכבה. (I10614, b/265177763) - הוספת API חדש למעקב אחר מהירות חד-ממדית (If5a82)
- החשבון
FocusRequesterמסומן עכשיו כ@Stable. (I580ee) - מסירים הערה ניסיונית מהבונה
DialogPropertiesשמקבל פרמטרusePlatformDefaultWidth. (Ic4048) - נוספה פונקציה לחישוב המיקום והמשיק במרחק מסוים בנתיב – עם
PathMeasure.getPosition()ו-PathMeasure.getTangent()(I3b47c) - הוסר setter ציבורי שנחשף בטעות ב-
PlatformParagraphStyle. (I07f47) - שיפורים בסוגים ובערכי null של פונקציות מוטמעות/מוסתרות שהוצאו משימוש (I24f91)
- מוסיפים
AnnotatedString.hasStringAnnotationsלשאילתה כדי לחפש הערות עם הקצאות אפס. (I94dfe, b/246960758) - נוספה פונקציית עומס יתר חדשה ל-
TextMeasurer.measureשמקבלתStringכטקסט. (I47b2d, b/242705342) - ממשקי ה-API
LineBreakו-Hyphensב-TextStyle עברו לגרסה יציבה. (Ic1e1d)
External Contribution
- השיטות
notifyFocusedRectב-TextInputSessionוב-TextInputServiceלא הוצאו שוב משימוש. (I23a04, b/262648050)
גרסה 1.4.0-alpha04
11 בינואר 2023
androidx.compose.ui:ui-*:1.4.0-alpha04 מופץ. גרסה 1.4.0-alpha04 מכילה את השמירות האלה.
תכונות חדשות
- נוסף ממשק API חדש של
PinnableContainerשמאפשר להצמיד פריטים ברשימה עצלה, כדי שהם לא יימחקו כשגוללים אותם מחוץ לגבולות. לדוגמה,Modifier.focusable()משתמש במנגנון הזה כדי להצמיד את הפריט שמוצמד כרגע. (Ib8881, b/259274257, b/195049010) - מערכת המיקוד נכתבה מחדש באמצעות ממשקי ה-API הניסיוניים החדשים של
Modifier.Node. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - נוספה תכונת הסמנטיקה
IsContainerבפלטפורמות השונות של Google. הנכס הזה ישמש בשינוי מאוחר יותר שקובע את סדר המעבר על סמך המשמעות הסמנטית של רכיבים כמו משטחים. (I63379) - נוסף תפקיד נגישות חדש
DropdownList. אפשר להשתמש במאפיין הזה כדי לשכפל את ההתנהגות שלTalkBack'sכשמתמקדים ב-android.widget.Spinner. (I177e5, b/236159001) - עכשיו אפשר להשתמש ב-
PlatformTextStyle(emojiSupportMatch)כדי להשבית את העיבוד של תמיכת האמוג'י לפסקה אחת. (Ia7100, b/139326806) - בדיקות של ממשק משתמש ב-Android Compose יפעילו עכשיו מעברים של פריסות לכל פריים כשמבצעים פריים כדי להגיע למצב סרק (לדוגמה, באמצעות
waitForIdle). יכול להיות שהשינוי הזה ישפיע על בדיקות שמאמתות פריים ספציפי של אנימציות פריסה. (I8ea08, b/222093277) - נוספה התכונה הניסיונית
TextMotionל-TextStyleכדי להגדיר אם הטקסט יהיהStatic(default)או מונפש. משתמשים ב-TextMotion.Animatedאם הטקסט הולך להיות מוגדל, מתורגם או מסובב באמצעות אנימציה. (I24dd7)
שינויים ב-API
- הארגומנט
maxSize: IntSizeבפונקציהdrawTextהוחלף בארגומנטsize: Sizeכדי להתאים לפונקציות אחרות שלDrawScope. כברירת מחדל,sizeמוגדר כ-Size.Unspecified, ולא אמור לשנות את התנהגות ברירת המחדל הקודמת. (Icd27d) - הוסר בנאי גופנים ניסיוני שיצא משימוש. (I8a724, b/261435386)
- למחלקת הנתונים של כלי ה-UI
Groupיש עכשיו שדה,isInline, שמציין אם הקבוצה היא לקריאה לפונקציה מוכללת שניתנת להגדרה. אםisInlineהואtrue, הקריאה היא לפונקציה מוטמעת שניתנת להגדרה. עם זאת, הערך עשוי להיות false עבור קריאות לפונקציות מוטמעות שניתנות להרכבה, שמגיעות ממודולים שעברו קומפילציה באמצעות גרסה של תוסף קומפילר ה-Compose שלא יוצרת את פרטי הפונקציה המוטמעת. (Idb846) - העברנו מספר ממשקי API שהיו בשלב הניסוי לשלב היציב
- Rotary Scroll Event API יציב עכשיו (I42ad3, b/261561229)
-
FontVariationAPI יציב עכשיו (I8779f, b/241016309) - כל הקונסטרוקטורים של
Font()הם עכשיו API יציב (I5948b, b/261435386) -
DeviceFontFamilyNameיציב עכשיו (I8b640, b/261435386) - הקונסטרוקטור
AndroidFontעםvariationSettingsהוא עכשיו API יציב, ואפשר להשתמש בו כדי ליצור סוגים חדשים של תיאורי גופנים. (I5adcc, b/261565807) - ממשק ה-API
createFontFamilyResolverיציב עכשיו. אפשר להשתמש בזה כדי לזהות חריגים שלא נתפסו במהלך טעינה אסינכרונית של גופנים. (Ibb481, b/261435386) - ממשק ה-API
Font.loadingStrategyיציב עכשיו. (I5937c, b/261435386) - ממשק ה-API
GoogleFontיציב עכשיו. (Ic90b0, b/261435386) -
TextUnit(float, TextUnitType)הוא עכשיו API יציב. (I90c84, b/261561612) -
pluralStringResourceהוא עכשיו API יציב. (I09849, b/261439703)
גרסה 1.4.0-alpha03
7 בדצמבר 2022
androidx.compose.ui:ui-*:1.4.0-alpha03 מופץ. גרסה 1.4.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הסרה של
ExperimentalComposeUiApiמתוךPointerIcon(I23af8) - הוספנו פעולות נגישות בדף:
PageUp,PageDown,PageLeft,PageRight. הערה: האפשרויות האלה זמינות רק מ-API 29. (Ida4ab) - העדכון של תצוגת הפרמטר
rememberNestedScrollConnectionמתצוגת הבסיס לתצוגת המארח. (Ia5200) - נוסף Modifier API לשאילתת מידע על גלילה ברכיבי צאצא. (I2ba9d, b/203141462)
- המאפיין הזה משמש ב-
Clickableכדי להשהות אינטראקציות של לחיצה בצורה נכונה, במקרים שבהם תנועות יכולות להפוך לאירועי גלילה. - תוקנה הבעיה שבה לא היה עיכוב נכון באפקט הגלים של
Clickablesכשנעשה בו שימוש בתוךScrollable ViewGroup. - עדכנו את מגירות הצד ואת הגיליונות כדי להשהות לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
- השם של
CompositingStrategy.Alwaysשונה ל-Offscreenכדי לציין ש-graphicsLayerתמיד יעבור עיבוד לתוך מאגר ביניים (I47dc1) - הפריסה עם יותר מדי משבצות תוכן יציבה עכשיו (I10566, b/248294649)
- הוספנו ממשקי API חדשים ניסיוניים,
PerfettoTrace.record {}ו-PerfettoTraceRule, כדי ללכוד עקבות של Perfetto (שנקראים גם עקבות של המערכת) כחלק מבדיקה, כדי לבדוק את התנהגות הבדיקה והביצועים שלה. (I3ba16) - בבדיקות של ממשק משתמש באמצעות כלל Compose, המשכים שהופעלו מחדש במהלך קריאות חוזרות (callbacks) של
withFrameNanosלא יישלחו עד שכל הקריאות החוזרות של המסגרת יסיימו לפעול. ההתנהגות הזו תואמת להתנהגות של כתיבת הודעה כשהיא פועלת כרגיל. עם זאת, יכול להיות שבדיקות שמסתמכות על ההתנהגות הישנה ייכשלו. השינוי הזה אמור להשפיע רק על קוד שמבצע קריאה ישירה ל-withFrameNanosאו ל-withFrameMillis, וכולל לוגיקה מחוץ לקריאות החוזרות שמועברות לפונקציות האלה, שאולי צריך להעביר אותה לתוך הקריאות החוזרות. דוגמאות לשינויים בבדיקת האנימציה מופיעות ברשימת השינויים הזו. - נוסף פרמטר אופציונלי
onPerformTraversals: (Long) -> Unitל-constructor ולפונקציית factory שלTestMonotonicFrameClockכדי להריץ קוד אחרי הקריאות החוזרות (callbacks) שלwithFrameNanosאבל לפני חידוש הקורוטינות של המתקשרים. (Idb413, b/254115946, b/222093277, b/255802670) - נוסף EmojiCompat ל-Compose (Ibf6f9, b/139326806)
- נוסף פרמטר טפט חדש ל-
@Previewלתמיכה בצבע דינמי (I9f512)
תיקוני באגים
- ההתראות על החלת תמונת המצב נשלחות עכשיו אחרי ש-
Recomposerמסיים להחיל את השינויים. (Iad6c0, b/222093277) - הוספנו שינויים בגרסה
captureToImageכדי לאפשר צילום מסך של ריבוי חלונות. האפשרות הזו שימושית לבדיקות של צילומי מסך שמשתמשות בחלונות קופצים של Compose. (I169c5)
עדכונים של תלות
- Compose UI ו-Compose Material מסתמכים עכשיו על Lifecycle 2.5.1. (I05ab0, b/258038814)
גרסה 1.4.0-alpha02
9 בנובמבר 2022
androidx.compose.ui:ui-*:1.4.0-alpha02 מופץ. גרסה 1.4.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- העדכון של
GraphicsLayerScopeמאפשר לראות את הגודל הנוכחי שלgraphicsLayer. הפונקציה הזו שימושית לחישוב טרנספורמציות שלgraphicsLayerכפונקציה של גודל הרכיב. (If8c43,b/181387080) - הוספנו את
CompositingStrategyכדי לקבוע מתי להשתמש בשכבת קומפוזיציה מחוץ למסך לצורך עיבוד של תוכןgraphicsLayer. ההתנהגות שמוגדרת כברירת מחדל נשמרת באופן אוטומטי. המערכת משתמשת בשכבה באופן פנימי אם מוחל אלפא, או ב-RenderEffect/Overscroll. האפשרות Always תמיד תציג מאגר זמני מחוץ למסך, ואילו האפשרותModulateAlphaלא תשתמש במאגר זמני מחוץ למסך, אלא תבצע שינוי בכל אחת מהוראות הציור המתועדות בתוךgraphicsLayer. השימוש ב-ModulateAlphaעדיין יסתמך על מאגר נתונים זמני מחוץ למסך לשימושים ב-RenderEffect/Overscroll(I25e82, b/256382834) - הוספנו את
invalidateSubtree()ל-Modifier.Nodeכדי לאפשר ביטול של היררכיות שלמות עבור פריסה ושרטוט. (I4bd90) - קידום
rememberNestedScrollInteropConnectionלגרסה יציבה. הוספנו את האפשרות להעביר תצוגת בסיס אלrememberNestedScrollInteropConnection. הפעולה הזו יכולה לעזור לתצוגה המותאמת אישית להגיב טוב יותר למגבלות הגלילה, במיוחד בתצוגות לא סטנדרטיות (למשלModalBottomSheetDialog). (I9e107) - נוסף ממשק
ObserverNodeשאפשר להשתמש בו בהטמעות שלModifier.Nodeשצריך לקבל עדכון כשערך שהן קראו בעבר משתנה (I5728b, b/247716483) - נוסף בנאי חדש ל-
Paintשמקבלandroid.graphics.Paintמקורי. נוספה גם פונקציית הרחבהtoComposePaint()שממירה אובייקט Paint נייטיב קיים ל-Compose Paint. (Ica91b) - הוספת
FontFamily.Resolver.resolveAsTypefaceחדש לשימוש ב-Android. (I8950b) - נוספה האפשרות
ToolingStateכדי לאפשר לכלים לשנות מצבים פנימיים של Composable (Ie6614) - שינוי מבנה של כלי פיתוח כדי לשפר את התמיכה באנימציות חדשות שנוספו (I8677b)
- נוסף הפרמטר
minLinesלרכיבי Text של material ו-material3, TextFieldו-OutlinedTextFieldשמאפשר להגדיר את הגובה המינימלי של הרכיב במונחים של מספר שורות (I4af1d)
גרסה 1.4.0-alpha01
24 באוקטובר 2022
androidx.compose.ui:ui-*:1.4.0-alpha01 מופץ. גרסה 1.4.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- נוספה שיטה חדשה,
awaitEachGesture(), לגלאי תנועות. הפעולה שלו דומה לזו שלforEachGesture(), אבל הלולאה של המחוות פועלת רק בתוךAwaitPointerEventScope, כך שלא יכול להיות אובדן של אירועים בין איטרציות. - הפונקציה
forEachGesture()הוצאה משימוש לטובתawaitEachGesture()כי היא מאפשרת לאירועים ללכת לאיבוד בין תנועות. (Iffc3f, b/251260206) - הוצאה משימוש של מיחזור אובייקטים של נגישות ב-androidx. גילינו ששינויים בביצועים הם זניחים גם בגרסאות הנתמכות הכי ישנות. (I0a961)
- הוספנו את
DrawStyleכמאפיין ניסיוני ל-TextStyleול-SpanStyleכדי לאפשר שרטוט של טקסט עם קו מתאר. (If24b8, b/155421273) - האפליקציה
AnnotatedString.Builderמטמיעה עכשיו אתkotlin.text.Appendable. (I1a061, b/231030444) - ל-
AnnotatedString.Builderיש עכשיו methodappend(AnnotatedString, start: Int, end: Int)לצירוף מחרוזת משנה שלAnnotatedStringוהסגנונות החופפים. - נוסף פרמטר
DrawStyleלפונקציות הצביעהParagraphו-MultiParagraph, שמאפשר לצייר טקסט עם קווי מתאר. (Ic8102, b/155421273)
External Contribution
- תודה על
vighneshעל הוספת מכשירי טלוויזיה לתצוגות מקדימות (Ie15cd)
גרסה 1.3
גרסה 1.3.3
11 בינואר 2023
androidx.compose.ui:ui-*:1.3.3 מופץ. גרסה 1.3.3 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה שקרתה לפעמים ב-Android 9 כשפעילות שומרת את המצב של תצוגת הכתיבה. (I0b755, b/260322832)
גרסה 1.3.2
7 בדצמבר 2022
androidx.compose.ui:ui-*:1.3.2 מופץ. גרסה 1.3.2 מכילה את השמירות האלה.
תיקוני באגים
- העדכון כולל שימוש ב-Profobuf 3.21.8, כדי למנוע התראת אבטחה ב-
protobuf-javalite:3.19.4(CVE-2022-3171) (b/255545055)
גרסה 1.3.1
9 בנובמבר 2022
androidx.compose.ui:ui-*:1.3.1 מופץ. גרסה 1.3.1 מכילה את השמירות האלה.
גרסה 1.3.0
24 באוקטובר 2022
androidx.compose.ui:ui-*:1.3.0 מופץ. גרסה 1.3.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.2.0
- חבילת API ניסיונית חדשה
LookaheadLayout(מאפשרת התנהגויות אנימציה שלא היו אפשריות בעבר) - חבילת API חדשה לניסוי
Modifier.Node(חלופה עם ביצועים טובים יותר ל-Modifier.composed) - תמיכה משופרת בשינוי הגודל והמיקום של החלונות.
- תמיכה בהתמקדות בלחצני כיוון ובמקלדת פיזית ב-LazyLists.
- הגובה המקסימלי שנתמך בתיבות דו-שיח ובחלונות קופצים צומצם ל-8dp (שינוי שמשבש את ההתנהגות של חלק ממערכות העיצוב המותאמות אישית – הסבר בהערות לגרסה beta01)
- שיפורים קלים ב-API שלא גורמים לשיבושים
- הרבה תיקוני באגים ושיפורי ביצועים
גרסה 1.3.0-rc01
5 באוקטובר 2022
androidx.compose.ui:ui-*:1.3.0-rc01 מופץ. גרסה 1.3.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- נוסף API ניסיוני חדש של מקפים לתמיכה בהוספת מקפים אוטומטית בטקסט (Iaa869)
תיקוני באגים
- גופני
DeviceFontFamilyNameלא יגדירו כברירת מחדל את ההגדרות שלwghtושל וריאציות שלital, אלא ישתמשו בהגדרות הפלטפורמה לגביTypefaceשנטענו. (Ia7a6d, b/246989332) - תוקן דליפת זיכרון ב-
LazyColumn– לא בוצעה קריאה ל-onModifierLocalsUpdatedעם ערך ברירת המחדל כשנעשה שימוש חוזר במאפייני שינוי (b/230168389)
גרסה 1.3.0-beta03
21 בספטמבר 2022
androidx.compose.ui:ui-*:1.3.0-beta03 מופץ. גרסה 1.3.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- אפשר להוסיף אפשרויות להתאמה אישית של מעברי שורה בטקסט. (I86907)
- הארגומנט
size:IntSizeהוחלף בארגומנטconstraints: ConstraintsבשיטהTextMeasurer.measureכדי לתמוך באילוצי רוחב מינימליים. (I37530, b/242707525)
תיקוני באגים
-
BackHandlerAPI של AndroidX Activity פועל עכשיו בתוך קומפוננטתDialog. (I35342)
גרסה 1.3.0-beta02
7 בספטמבר 2022
androidx.compose.ui:ui-*:1.3.0-beta02 מופץ. גרסה 1.3.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו עומס יתר ניסיוני לרכיב Layout, שמקבל רשימה של כמה ביטויי למדה של תוכן שניתן להרכבה. כך אפשר לטפל בפריטים שניתנים למדידה שמוצבים בביטויי למדה שונים של תוכן בצורה שונה (Ic1b4e).
שינויים בממשקי Focus API ניסיוניים:
- התכונות
FocusDirection.Inו-FocusDirection.Outהוצאו משימוש והוחלפו בתכונותFocusDirection.Enterו-FocusDirection.Exit. (Ia4262, b/183746982) - נוספו שני מאפיינים חדשים של מיקוד, enter ו-exit, כדי לציין התנהגות מותאמת אישית עבור
FocusManager.moveFocus(Enter)ו-FocusManager.moveFocus(Exit). (I5f3f9, b/183746982) - מעכשיו אפשר להשתמש ב-
FocusRequester.Cancelכדי לבטל את ההעברה של המיקוד. אפשר להשתמש ב-FocusRequester.Cancelבכל אחד ממאפייני המיקוד הבאים: up, down, left, right, next, previous, start, end, enter ו-exit. (Ib300f)
גרסה 1.3.0-beta01
24 באוגוסט 2022
androidx.compose.ui:ui-*:1.3.0-beta01 מופץ. גרסה 1.3.0-beta01 מכילה את השמירות האלה.
Modifier Node Refactor
השכבה שמטפלת במופעים של Modifier/Modifier.Element ומתאמת את ההתנהגות שלהם ב-LayoutNodes עברה שינוי משמעותי. במצב הנוכחי, מדובר בשינוי מבנה שלא השפיע על ה-API הציבורי של אף אחד מהמשנים הרבים ב-Compose, ואפשר לראות בו שינוי שקשור להטמעה בלבד. למרות זאת, מדובר בשינוי חשוב מסיבות שונות. (Ie4313)
סיכום השינויים
ממשקי ה-API הניסיוניים Modifier.Node שנוספו מספקים הפשטה שמאפשרת לשמור את המצב במופע שיישמר עם מחזור החיים של צומת הפריסה, ויוקצה לכל צומת פריסה ולכל שימוש ב-Modifier.Element המתאים שיצר אותו.
באופן כללי, האבסטרקציה הזו מספקת מנגנון חלופי ליצירת משנים עם שמירת מצב בלי להסתמך על המכניקה של Modifier.composed API.
סיכון
השינוי הזה תואם באופן בינארי לגרסאות קודמות, והוא נועד להיות תואם לגרסאות קודמות מבחינת התנהגות שניתנת לצפייה, ככל שניתן באופן מעשי וסביר. עם זאת, יש כמה מערכות משנה של Compose שהשינוי הזה לא השפיע עליהן, וסביר להניח שההתנהגות שלהן השתנתה בדרכים שלא נבדקו על ידי הבדיקות שלנו, ושעדיין לא זוהו ותוקנו.
מומלץ לשדרג לגרסה הזו בזהירות. אם לדעתך השינוי הזה גרם לבעיה כלשהי, אפשר ליצור איתנו קשר.
ממשקי API ניסיוניים
נוספו ממשקי API ניסיוניים שונים, שכולם קשורים למושג החדש 'צומת של משנה'. Modifier.Node’s נוצרים כתוצאה מ
fun modifierElementOf(…): Modifierabstract class ModifierNodeElementabstract class Modifier.Nodeabstract class DelegatingNodeinterface LayoutModifierNodeinterface DrawModifierNodeinterface SemanticsNodeinterface PointerInputNodeinterface ModifierLocalNodeinterface ParentDataModifierNodeinterface LayoutAwareModifierNodeinterface GlobalPositionAwareModifierNodeinterface IntermediateLayoutModifierNode
שינוי התנהגות שעלול לגרום לכשל
הגובה המקסימלי שנתמך בתיבות דו-שיח ובחלונות קופצים הופחת ל-8dp.
הגובה המקסימלי שנתמך לתיבות דו-שיח ולחלונות קופצים של Compose הופחת מ-30dp ל-8dp. השינוי הזה משפיע גם על דיאלוגים וחלונות קופצים של Material וגם על דיאלוגים וחלונות קופצים של ממשק משתמש בהתאמה אישית. השינוי הזה נעשה כדי לצמצם את ההשפעה של באג נגישות בגרסאות Android שמתחת לגרסה S, וכדי לוודא ששירותי נגישות בחלונות האלה יכולים ליצור אינטראקציה עם התוכן בתוך תיבת הדו-שיח או החלון הקופץ.
השינוי הזה ישפיע עליכם רק אם אתם יוצרים הטמעה של תיבת דו-שיח או חלון קופץ מותאמים אישית עם הגבהה שמוגדרת לרמות גבוהות מ-8dp. כדאי להקטין את הגובה של תיבת הדו-שיח או החלון הקופץ. אם אתם רוצים לבטל את ההצטרפות להתנהגות החדשה הזו, אתם יכולים ליצור העתק של תיבת הדו-שיח או החלון הקופץ עם ההגדרה הרצויה של ההרשאה. הפעולה הזו לא מומלצת, כי היא עלולה לפגוע בנגישות, והמפתחים צריכים לוודא שניתן להפעיל את החלק התחתון של תיבת הדו-שיח או החלון הקופץ ולקרוא אותו באמצעות שירותי נגישות.
שינויים ב-API
- תוקנה בעיה שגרמה לכך ש-
painterResourceלא התעדכן בשינויים בהגדרות (I58e73, b/228862715) - הפרמטר
rememberTextMeasurerלא מקבל יותר פרמטרים שלFontFamily.Resolver,DensityאוLayoutDirection. כדי לספק ערכים מותאמים אישית לפרמטרים האלה, צריך להשתמש בבונהTextMeasurer. (Ia1da3) - נוסף מאפיין
DialogProperties.decorFitsSystemWindowsכדי לאפשר תמיכה בתיבות דו-שיח ב-WindowInsets. (I57742, b/229378542) - החזרנו את בנאי הגופנים לקובץ המקורי של Kotlin כדי לשמור על תאימות בינארית. אין שינוי לעומת הגרסה היציבה האחרונה. (Ieb2f3)
- הוסר אופרטור מיותר מכמה הגדרות של equals – אין לכך השפעה. (I6c309)
-
FontVariation.Settingהוא ממשק אטום, כדי לאפשר ממשקי API עתידיים של הידוק. (I11021, b/143703328) - הוספה של
CompositionGroup.findParametersאלSlotTree.kt. כך כלי יכול לאחזר פרמטרים שלCompositionGroupבלי לנתח את כל טבלת המשבצות. (I124fe)
גרסה 1.3.0-alpha03
10 באוגוסט 2022
androidx.compose.ui:ui-*:1.3.0-alpha03 מופץ. גרסה 1.3.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
-
LayoutCoordinates.findRootCoordinates()עכשיו גלוי לכולם (I7fa37, b/204723384) - הוספנו API ניסיוני כדי לקבל את
LayoutCoordinatesב-PlacementScope. כך המפתחים יודעים איפה הפריסה הנוכחית נמצאת כדי למקם את רכיבי הצאצא שלה ביחס למיקום שלה. (I5482b, b/238632578) - נוסף
LayoutCoordinates.transformFromכדי לקבל את טרנספורמציית המטריצה מ-LayoutCoordinatesאחד לאחר. (Ic5ab1, b/238632578) - המאפיין
SemanticsModifier.idיצא משימוש, והסמנטיקה של המזהה הועברה במקומו אלLayoutInfo.semanticsId. (Iac808, b/203559524) - הספרייה Resource Fonts תומכת עכשיו בהגדרת וריאציות של גופנים (API 26 ואילך). (I900dd, b/143703328)
- תמיכה בגופנים משתנים ב-
DeviceFontFamilyNameFont(Ic1279, b/143703328) - אפשר להשתמש עכשיו בבוני גופנים כדי להגדיר גופנים משתנים במכשירי O+ באמצעות רשימה של
FontVariation.Setting. (I11a9d, b/143703328) - הוספנו
FontVariationAPI להגדרה ולשימוש בגופנים משתנים. (I3c40c, b/143703328) - ה-constructor
LineHeightStyle.Alignmentהוא עכשיו ציבורי (ניסיוני) (I4bbbe, b/235876330) - המאפיין Paragraph (פסקה) מוגדר עכשיו כ-expect|actual (צפוי|בפועל) עבור Android ומחשבים. (Id387e, b/239962983)
- הממשק 'פסקה' הוא עכשיו ממשק 'פסקה' חתום. אין תרחיש לדוגמה שבו יש צורך ביצירת מחלקת משנה של פסקה, ואנחנו ממליצים לפנות אלינו אם השינוי הזה משפיע עליכם. (If5247, b/239962983)
- ההערה הניסיונית הוסרה מ-
PlatformTextStyleומ-LineHeightStyle. (I64bef) - הוצאה משימוש של
TextInputService.show|hideSoftwareKeyboard. במקומה, צריך להשתמש ב-SoftwareKeyboardControllerבקוד האפליקציה וב-TextInputSessionבקוד לניהול IME. (I14e4c, b/183448615) - הוספת API חדש לסוגי אנימציה קיימים (I26179)
תיקוני באגים
- הוספנו את
@RequiresPermissionלממשקי API שנדרשת בהם הרשאתPOST_NOTIFICATIONSב-SDK 33 ומעלה. (Ie542e, b/238790278)
גרסה 1.3.0-alpha02
27 ביולי 2022
androidx.compose.ui:ui-*:1.3.0-alpha02 מופץ. גרסה 1.3.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף נכס חדש
PointerInputChange#pressureלאחזור הלחץ. (I45a5e, b/205164819) - הוספנו את
rememberTextMeasurerכדי ליצור בקלות מופעים שלTextMeasurerולזכור אותם בהלחנה. (I8d66e) -
Rect,RoundRectו-MutableRectתומכים עכשיו בתחביר של Kotlininלקריאה לפונקציהcontains. (Ie42b0, b/238642990) - מסירים פונקציות מיותרות מ-
KeyInjectionScope, כי אפשר להטמיע אותן בקלות באמצעות חלקים פשוטים יותר של ה-API. הפונקציות שהוסרו כוללות אתpressKeys, keysDownו-keysUp. (I81d77) - בוצע שינוי מבנה בשמות של קבועים ופרמטרים ב-
KeyInjectionScopeכדי לכלול את הסיומת 'Millis' במקרים שבהם יחידות המידה של הקבועים והפרמטרים האלה הן אלפיות השנייה. (Iabef5) - נוספה שיטה
toStringForLog()ל-EditCommandכדי לעזור בפתרון בעיות בעריכת טקסט. (I53354, b/228862731) - נוספה פונקציית ההרחבה
drawTextב-DrawScopeכדי לספק דרך לצייר טקסט עם כמה סגנונות ברכיבים הניתנים להגדרה ובאמצעי שינוי שפועלים ב-DrawScopeכמוCanvasו-drawBehind. (I16a62, b/190787898) - הוספנו API ניסיוני חדש בשם
TextMeasurerשמאפשר חישוב של פריסת טקסט שרירותית שיוצר תוצאות זהות ל-BasicText, ללא תלות בזמן הריצה של Compose. (I17101) - הוספה של
mapTreeאלSlotTree.kt. כך כלי יכול לבדוק אתSlotTreeבלי ליצור קודם עותק בזיכרון כמו ב-asTree. במקרה של הכלי Layout Inspector, השיפור בביצועים הוא בערך פי 10. (I5e113) - השינוי הוא שאפשר לאחסן את התצוגה המקדימה של Compose בקובצי פלט בינאריים, כדי לאפשר למפתחים לכתוב הערות
MultiPreviewמספריות ולעשות בהן שימוש חוזר. (I85699, b/233511976)
תיקוני באגים
- כשמוסיפים אירועים מסוג
InputEventChangeל-VelocityTracker, המערכת תתייחס עכשיו לשינויים במקום למיקומים. כך מובטח שהמהירות תחושב בצורה נכונה בכל המקרים, גם אם רכיב היעד זז (Icea9d, b/216582726, b/223440806, b/227709803). - תיקון NPE שנגרם על ידי
AnnotatedString.toUpperCaseכשיש הערות. (I0aca2, b/210899140)
גרסה 1.3.0-alpha01
29 ביוני 2022
androidx.compose.ui:ui-*:1.3.0-alpha01 מופץ. גרסה 1.3.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
-
LookaheadLayoutחדש שתומך במעבר קדימה לפני המדידה או הפריסה בפועל. האפשרות הזו מאפשרת לבצע חישוב מראש של הפריסה כשהיא משתנה, ובמקביל מאפשרת למדד או לפריסה של אחרי החיפוש קדימה להשתמש בגודל או במיקום שחושבו מראש כדי להנפיש את הגודל והמיקומים לעבר היעד.SubcomposeLayoutsעדיין לא נתמכים, אבל הם יתמכו בגרסה הקרובה. (I477f5) - מוסיפים פרמטר אלפא אופציונלי ל-Brush flavor של
TextStyleושלSpanStyleכדי לשנות את האטימות שלTextכולו. (Ic2fac, b/234117635) - הוספנו את סוג ההערה
UrlAnnotationואת השיטות שמשויכות אליו כדי לתמוך בקישוריTalkBackב-AnnotatedString. (I1c754, b/231495122) - העברת פונקציונליות של כלי עזר לזמן ריצה (I4f729)
תיקוני באגים
- הפונקציה
TextLayoutResult.getLineForOffsetלא יוצרת חריגה. (Idc5d6, b/235876324)
External Contribution
- נוסף API חדש
WindowInfo.keyboardModifiersכדי לצפות במצב שלו בפונקציות שאפשר להרכיב או באמצעות snapshotFlow (Icdb8a)
גרסה 1.2
גרסה 1.2.1
10 באוגוסט 2022
androidx.compose.ui:ui-*:1.2.1 מופץ. גרסה 1.2.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה שגיאת nullpointer בכלי הבדיקה (b/237987764)
- תוקנה חריגה של המרת מחלקה במהלך שמירה בכלי לבדיקת רכיבים (b/235526153)
גרסה 1.2.0
27 ביולי 2022
androidx.compose.ui:ui-*:1.2.0 מופץ. גרסה 1.2.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.1.0
שיפורים במעבר בין רכיבים:
- גלילה מבוססת-מיקוד ברשימות Lazy פועלת עכשיו באמצעות
BeyondBoundsLayoutcore API החדש - ממשקי API חדשים להתאמה אישית של התנהגות ב-
FocusOrderוב-FocusProperties - שיפור ההתנהגות עם מקלדת פיזית או שלט רחוק של טלוויזיה
- גלילה מבוססת-מיקוד ברשימות Lazy פועלת עכשיו באמצעות
ממשקי API חדשים ל:
- שוליים פנימיים של חלון
- פרימיטיבים מרכזיים לאנימציות אינסופיות של פריסות שמופעלות באמצעות מחוות
- יכולות, כולל
RenderEffectGraphicsLayer
הרבה תיקוני באגים ושיפורי ביצועים
גרסה 1.2.0-rc03
29 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-rc03 מופץ. גרסה 1.2.0-rc03 מכילה את השמירות האלה.
- לא בוצעו שינויים מאז גרסה 1.2.0-rc02.
גרסה 1.2.0-rc02
22 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-rc02 מופץ. גרסה 1.2.0-rc02 מכילה את השמירות האלה.
גרסה 1.2.0-rc01
15 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-rc01 מופץ. גרסה 1.2.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- ממשקים בספריות של Compose נוצרים עכשיו באמצעות שיטות ממשק שמוגדרות כברירת מחדל ב-jdk8 (I5bcf1)
- נוספו פונקציות מסדר גבוה יותר ל-
KeyInjectionScopeלהחדרת לחיצות על מקשים בזמן שמקשים אחרים מוחזקים או מופעלים. הפונקציות האלה כוללות אתwithKeysDown,withKeysToggledוכו'. נוספו גם מאפיינים לבדיקה אם מקש מטא מסוים לחוץ, למשלisCtrlDownכדי לבדוק אם אחד ממקשי הבקרה לחוץ. בכתובתKeyInjectionScopeיש מידע על כל פונקציה. (I9f6cd, b/229831515) - הוספנו
OverscrollEffectניסיוני כדי לאפשר אפקטים מותאמים אישית של גלילה מעבר לקצה, בנוסף לModifier.scrollableעומסים העודפים שמקבלים אותו. - הפונקציה הניסיונית
LocalOverScrollConfigurationהועברה מ-foundation.gestureלחבילת הבסיס ושמה שונה ל-LocalOverscrollConfiguration(If19fb, b/204650733) - שינוי השם של
runComposeUiTestWithoutActivity {}ל-runEmptyComposeUiTest {}, כדי להתאים אותו ל-createEmptyComposeRule()(I6fed7)
גרסה 1.2.0-beta03
1 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-beta03 מופץ. גרסה 1.2.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- נוספו גם
pressKeyTimes,isCapsLockOnוחברים אלKeyInjectionScope. בנוסף, ה-API תומך עכשיו בדפוסי הזרקה משולבים של עכבר ומקלדת, כמו לחיצה על לחצן בעכבר תוך כדי החזקת מקש מטא. (I4c8da, b/229831515) - הוספנו תמיכה ניסיונית בהחדרת אירועים מרכזיים. משתמשים ב-
performKeyInputכדי לשלוח אירועים מרכזיים, או שולחים אותם דרך המאפייןkeyשלMultiModalInjectionScopeבמהלך תנועת קלט רב-אופני עםperformMultiModalInput. מידע נוסף מופיע במסמכי העזרה בנושא ממשק ה-API שלKeyInjectionScope. (Ic5000, b/229831515) - מוסיפים
GoogleFont.Provider.AllFontsListUriחדש כדי לאחזר את מקור האינטרנט הקנוני של Google Fonts שנתמך על ידי Android. - שיפור הודעות השגיאה שמוצגות מחדש אם הטעינה של GoogleFonts נכשלת בכתיבת אימייל. (I0416c)
תיקוני באגים
- כשמוסיפים אירועים של
InputEventChangeל-Velocity Tracker, המערכת תתייחס עכשיו לשינויים במקום למיקומים. כך מובטח שהמהירות תחושב בצורה נכונה בכל המקרים, גם אם רכיב היעד זז (I51ec3, b/216582726, b/223440806, b/227709803) - ההגדרה
Show Layout Boundsתופעל עכשיו ברכיבים הניתנים להרכבה מיד אחרי שתעברו בין המצבים שלה בלחצן ההגדרה המהירה, בלי שתצטרכו לצאת מהפעילות ולהיכנס אליה מחדש. (I843d5, b/225937688) - חיפוש מחרוזת נגישות לא מפעיל טעינת גופן. בעבר, המערכת ניסתה לטעון גופנים עבור
StyleSpans, מה שהוביל לקריסות אםFontFamily.Resolverנדרס. (I4609d) - לחיצה על מקש המחיקה קדימה כשהסמן נמצא בסוף שדה טקסט לא תגרום יותר לקריסה.
- הארגומנטים של בנאי המחלקה
DeleteSurroundingTextCommandו-DeleteSurroundingTextInCodePointsCommandחייבים להיות לא שליליים. (Ica8e6, b/199919707)
גרסה 1.2.0-beta02
18 במאי 2022
androidx.compose.ui:ui-*:1.2.0-beta02 מופץ. גרסה 1.2.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- שימוש חוזר בפונקציונליות בסוגים אחרים של תצוגות מקדימות (I19f39)
תיקוני באגים
- השם
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainerשונה ל-DisposeOnDetachedFromWindowOrReleasedFromPoolכדי לשקף בצורה טובה יותר את המקרים שבהם מתבצעות השלכות, ולא רק את המקרים שבהם הן לא מתבצעות. (If15ca)
גרסה 1.2.0-beta01
11 במאי 2022
androidx.compose.ui:ui-*:1.2.0-beta01 מופץ. גרסה 1.2.0-beta01 מכילה את השמירות האלה.
תכונות חדשות
- זו גרסת הבטא הראשונה של 1.2!
שינויים ב-API
- נוספה תכונה ניסיונית
BeyondBoundsIntervalשאפשר להשתמש בה בהטמעות מותאמות אישית שלLazyListכשהן מסדרות פריטים מעבר לגבולות הנראים (Ifabfb, b/184670295) - גרסאות עם מפתח של
Modifier.composedהן עכשיו API יציב (Ie65e4, b/229988420) - פישטנו את
rememberNestedScrollConnectionAPI כדי להשתמש ב-composition locals כדי לקבל את פרטי התצוגה הנוכחית (I67ca7) - עכשיו אפשר להשתמש בהערה
@ComposableTargetובהערות שמסומנות ב-@ComposableTargetMarkerבהיקף הקובץ באמצעות הקידומת@file. שימוש בהערת יעד בהיקף הקובץ יגרום לקומפיילר להניח שכל הפונקציות שניתנות להרכבה בקובץ מיועדות להיות היעד של כלי ההחלה המשויך. לדוגמה, השימוש ב-@file:UiComposableמצהיר שכל הפונקציות של@Composableמכוונות אל כלי ההחלה של ממשק המשתמש של Compose. פונקציה שצריכה לטרגט כלי החלה אחר חייבת לספק במפורש את הערת הסמן של היעד עבור כלי ההחלה הרצוי. (I40804) הוספנו API חדש לניסויים, שלא תלוי בפלטפורמה:
interface ComposeUiTestו-fun runComposeUiTest(block: ComposeUiTest.() -> Unit), שאפשר להשתמש בהם כדי להריץ בדיקות של ממשק משתמש ב-Compose בלי צורך ב-TestRule. כדי להריץ בדיקה בליComposeTestRule, מעבירים את הבדיקה כ-lambda אלrunComposeUiTest, ומשתמשים במתודות ובחברים בהיקף המקבלComposeUiTest, שהם אותם אלה שמופיעים ב-ComposeContentTestRule.הפונקציות הספציפיות ל-Android
interface AndroidComposeUiTestו-fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)נוספות כדי לספק גישה לפעילות הבסיסית, בדומה ל-AndroidComposeTestRule. כדי לקבל שליטה רבה יותר, אפשר ליצור מופע שלclass AndroidComposeUiTestEnvironmentבעצמכם.ההטמעה במחשב היא
class DesktopComposeUiTest, אבל בשלב הזה לא מוצעות פונקציות הפעלה ספציפיות למחשב.אפשר להעביר בדיקה מ-
ComposeTestRuleל-ComposeUiTestבאופן הבא (דוגמה ל-Android). מאת:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }אל:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }בשלב הזה, הפונקציות
ComposeContentTestRuleו-ComposeTestRuleלא נגזרות מ-ComposeUiTest, כלומר אי אפשר עדיין להפעיל פונקציות של תוספים בממשקTestRule.ComposeUiTestכש-ComposeUiTestיעבור ל-API יציב,ComposeContentTestRuleו-ComposeTestRuleישתנו כך שהם יורחבו מ-ComposeUiTest. (Ib4e90)השם של
LineHeightBehaviorהשתנה לLineHeightStyleהשם של
LineVerticalAlignmentהשתנה לLineHeightStyle.Alignmentהשם של
LineHeightTrimשונה לLineHeightStyle.Trimהערכים של בנאי ברירת המחדל מ-
LineHeightStyleהוסרו (I582bf, b/181155707)נוספו
Brushל-TextStyleו-SpanStyleכדי לספק דרך לצייר טקסט עם צביעת מעבר צבעים. (I53869, b/187839528)המאפיינים
trimFirstLineTopו-trimLastLineBottomשלLineHeightBehaviorשונו לסוג enum יחיד:LineHeightTrim.LineHeightTrimיש 4 מצבים שמוגדרים על ידי שני ערכים בוליאניים:FirstLineTop, LastLineBottom, Both ו-None (Ifc6a5, b/181155707)הוספת את
LineHeightBehaviorאלTextStyleואלParagraphStyle. LineHeightBehaviorקובע אם גובה השורה יחול על החלק העליון של השורה הראשונה ועל החלק התחתון של השורה האחרונה. התג גם מגדיר את היישור של השורה במרחב שמוגדר על ידיTextStyle(lineHeight).לדוגמה, אפשר לקבל התנהגות דומה למה שמוגדר ב-CSS באמצעות
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false).ההגדרות
trimFirstLineTopו-trimLastLineBottomפועלות בצורה תקינה רק אם הערך שלincludeFontPaddingהוא false. (I97332, b/181155707)הפונקציות
PlatformParagraphStyle.lerpו-PlatformSpanStyle.lerpהשתנו והפכו לפונקציות ברמה העליונה (I9a268)
תיקוני באגים
- במסמכי התיעוד של
PointerInputChange::copyמצוין עכשיו בצורה נכונה שמדובר בעותק שטחי. (I182f5) - תמיכה בשלוש נקודות כשגובה מוגבל ואין מקום לכל שורות הטקסט (Ie528c, b/168720622)
- מופעל כברירת מחדל
includeFontPadding. אפשר להשבית אתincludeFontPaddingבאמצעות המאפייןTextStyle.platformTextStyle. בעתיד הקרוב נשנה את התנהגות ברירת המחדל, אבל עד אז השינוי הזה מאפשר לנו לשלב טוב יותר שיפורים בגובה השורה (aosp/2058653) ולפתור בעיות שלTextFieldחיתוך. (I01423, b/171394808)
External Contribution
-
MouseInjectionScope.scroll(delta = someDelta)עכשיו הפוך ב-Android אם גוללים אנכית (אם someDelta חיובי, הגלילה תהיה כלפי מטה) (Ifb697, b/224992993)
גרסה 1.2.0-alpha08
20 באפריל 2022
androidx.compose.ui:ui-*:1.2.0-alpha08 מופץ. גרסה 1.2.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- הפונקציות
pluralStringResourceסומנו כניסיוניות כדי לאפשר שיפורים בעתיד, במטרה לתמוך טוב יותר בבינאום. (If24e4) - הפרמטר Constraints מתקבל עכשיו ב-Paragraph וב-MultiParagraph. העברת הערך
Constraints.maxHeightלא משפיעה על הפעולה בשלב הזה, אבל בעתיד היא תאפשר לבצע חישובים מסוימים, כמו התאמת הגובה של הטקסט. (I6afee, b/168720622) -
SubcomposeSlotReusePolicy.getSlotsToRetain()מקבל עכשיו מחלקה מותאמת אישית שדומה ל-MutableSet, שלא מאפשרת להוסיף אליה פריטים חדשים. (Icd314) - PointerIcon הוא עכשיו ממשק
@Stable(I9dafe) - האפשרות 'צריכה חלקית' (הורדה או מיקום) הוצאה משימוש ב-
PointerInputChange. אפשר להשתמש ב-consume()כדי להחיל את השינוי באופן מלא. אפשר להשתמש ב-isConsumedכדי לקבוע אם מישהו אחר כבר השתמש בשינוי הזה. -
PointerInputChange::copy()יוצר עכשיו תמיד עותק שטחי. המשמעות היא שעותקים שלPointerInputChangeינוצלו ברגע שאחד מהעותקים ינוצל. אם רוצים ליצורPointerInputChangeלא מאוגד, צריך להשתמש ב-constructor. (Ie6be4, b/225669674) - הפעלה של יכולת פעולה הדדית של גלילה מוטמעת בין Compose ל-View בכיוון Compose > View. כלומר, רכיב אב שיוצר הודעה יוכל לקבל דלתאות של גלילה מוטמעת מתצוגת גלילה מוטמעת. (If7949, b/174348612)
- New
SemanticsProperty testTagsAsResourceId, שאפשר להשתמש בו כדי להתאים את Compose לבדיקות UIAutomator שמיועדות למערכת View. (I39c20) - הצגת כל המשקלים הזמינים לגופני מערכת ב-Android כשמשתמשים ב-
FontFamily.SansSerif. הפעולה הזו תשתמש בשמות גופנים חלופיים כמו sans-serif-medium באופן פנימי ב-API 21-28. זהו שינוי בהתנהגות, כי בעבר נתמכו רק משקלים 400 ו-700 ב-API 21-28. (I380fe, b/156048036, b/226441992) - במדריכים Paragraph ו-Multiparagraph, הארגומנטים התלויי מיקום הוזזו כך שיופיעו לפני הארגומנטים האופציונליים. (Idafaa)
- הפונקציה
AndroidFontמקבלת עכשיו את typefaceLoader כפרמטר של בנאי. (I2c971)
גרסה 1.2.0-alpha07
6 באפריל 2022
androidx.compose.ui:ui-*:1.2.0-alpha07 מופץ. גרסה 1.2.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- נוספה פונקציה חדשה
Snapshot.withoutReadObservation { ... }. היא מאפשרת למשתמשים להפעיל את ה-lambda שהועבר בלי להירשם לשינויים של ערכי המצב שנקראו במהלך הבלוק הזה. האפשרות הזו יכולה להיות שימושית בתרחישי שימוש שבהם רוצים ליהנות מהיתרונות של קריאה וכתיבה בטוחה לשרשור שמבוססת על snapshot, אבל רוצים לקרוא את הערך בלי לגרום להרכבה מחדש או למדידה מחדש מיותרות. (I9f365, b/214054486) - המאפיין
consumeWindowInsetsשל התוסףComposeViewמאפשר למפתחים להשבית את השימוש ב-WindowInsetsב-Android. כך כלComposeViewsבהיררכיה יכול להחילWindowInsetsבלי להפריע אחד לשני. (I0ef08, b/220943142) - נוספה האפשרות
KeyboardType.Decimalכחלופה ל-Keyboard.Numberכדי לכלול בממשק IME מפריד עשרוני באופן ספציפי. (Iec4c8, b/209835363) -
PointerEventType.Scrollו-PointerEvent.scrollDeltaהם עכשיו ממשקי API יציבים (I574c5, b/225669674) - הפעלת יכולת פעולה הדדית של גלילה מקוננת בין View ל-Compose עבור מחלקות View שפועלות יחד. כלומר, עכשיו אפשר לשלוח את ההפרשים של הגלילה לרכיב View אב (שמשתף פעולה). (I5d1ac, b/174348612)
- בוצע עדכון של
FontFamily.Resolverכדי לשלב את הגדרת הנגישות של טקסט מודגש בכל המערכת (I6c1e7) - השדה
Font(AssetManager, String, ...)הוצא משימוש והוחלף בשדהFont(String, AssetManager, ...). זהו API ניסיוני. (I1c7a4) - מוסיפים את מתאר הגופן החדש
Font(DeviceFontFamilyName)כדי לחפש באופן אופציונלי גופנים שהותקנו במערכת במהלך שרשראות של גופנים חלופיים. (I30468, b/219754572) - נוספה הגדרת תאימות זמנית ל-
includeFontPaddingב-TextStyle/ParagraphStyle. אפשר לשנות אתincludeFontPaddingדרךTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)). זוהי אפשרות הגדרה זמנית להפעלת ההעברה, והיא תוסר בהמשך. (If47be, b/171394808) - הוספת התוסף
GoogleFont.Provider.isAvailableOnDeviceכדי לקבל עזרה בניפוי באגים. (I64e31) - הוספת בנאי
GoogleFont.Providerלשימוש עם@ArrayRes(Ic5ee1, b/225984280) -
Compose GoogleFontנקרא עכשיוFont(GoogleFont), ה-API נשאר יציב בכל שאר המקרים. (I125f2)
תיקוני באגים
- הוספנו בדיקת lint ל-material/Scaffold כדי לוודא שנעשה שימוש בריווח הפנימי (Ifb111)
גרסה 1.2.0-alpha06
23 במרץ 2022
androidx.compose.ui:ui-*:1.2.0-alpha06 מופץ. גרסה 1.2.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- נוספה פעולת סמנטיקה
RequestFocusכדי לבקש התמקדות ביעד שאפשר להתמקד בו. (I17b71) - עדכון של ניתוח התוכן של נכסי וקטורים שניתנים לציור כדי לתמוך בשיקוף אוטומטי, במטרה להפוך את התוכן של
VectorPainterאם כיוון הפריסה הנוכחי הוא מימין לשמאל. (I79cd9, b/185760237) הצבעים של הצללה/האווירה עודכנו כך שיהיו פרמטרים נגררים של
Modifier.graphicsLayerלצורך תאימות ל-API (I3f864, b/160665122)נוספו הטמעות ברירת מחדל לצבע הצללית/הסביבה ב-
GraphicsLayerScopeכדי להבטיח שינויים ב-API שלא יגרמו לבעיותנוסף משך האירוע לאירועים ב-RSB (Ief8ae)
החשבון
FocusOrderמוזג עכשיו עם החשבוןFocusProperties, ולחשבוןfocusProperties()יש עכשיו את כל היכולות שלfocusOrder(). התכונותFocusOrderו-focusOrder()הוצאו משימוש. focusOrder()שכוללfocusRequesterצריך להיות מוחלף בשינויfocusRequester()בשילוב עםfocusProperties(). כך אפשר להפריד בצורה טובה יותר בין התפקידים של משני המשתנים. (I601b7)שדרוג של
RecyclerViewוגם שלComposeיביא לביצועים טובים יותר של גלילה ב-RecyclerViews עם תצוגות Compose כרכיבי צאצא.הוספת
ViewCompositionStrategy.Defaultכאמצעי לשחזור אסטרטגיית ברירת המחדל המובניתמוסיפים את
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer, שהיא שיטת ברירת המחדל החדשה, ומטפלת בצורה נכונה במאגרי תגים כמו RecyclerView. (If7282)הוספנו תמיכה בהוספת הערות למחלקות של הערות באמצעות @Preview כשלב ראשון בהוספת התכונה Multipreview. אפשר להשתמש בהערות כאלה כדי להוסיף הערות לשיטות Composable או למחלקות הערות אחרות, שאפשר יהיה להתייחס אליהן כאל הערות שנוספו באופן עקיף באמצעות @Preview. (I12eff)
מכשירים להתייחסות נוספו לרשימת המכשירים ב-@Preview (I071c9)
תיקוני באגים
- ממשקי ה-API של גרפיקה וקטורית עודכנו כך שישתמשו בהערה הנכונה שאפשר להרכיב @VectorComposable במקום @UiComposable (I942bc)
- הסרת crossinline מ-
AnnotatedString.Builder.withStyle(If84d5)
External Contribution
- compose-ui: Add
ambientShadowColorandspotShadowColorproperties toGraphicsLayerScope(I1ba1a, b/160665122) - עכשיו יש תמיכה במשאבים רבים באמצעות הפונקציות
pluralStringResource. (Ib2f23, b/191375123)
גרסה 1.2.0-alpha05
9 במרץ 2022
androidx.compose.ui:ui-*:1.2.0-alpha05 מופץ. גרסה 1.2.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הפונקציה
TextToolbarמקבלת עכשיו ארגומנטים מסוג lambda במקוםActionCallback. (Ib2eb9, b/197950089) - עודכן מצב ה-nullability בליבת ה-appcompat כדי להתאים ל-Tiramisu DP2 (I0cbb7)
- ממשק Measured חושף עכשיו את המאפיין parentData (I3313f)
- הממשק של
Modifier.onPlacedושלOnPlacedModifierיציב עכשיו. (Ib5482) - איזה כיף! האנימציה של יצירת הודעה תומכת עכשיו בהגדרה 'קנה מידה למשך זמן אנימציה' מתוך 'אפשרויות למפתחים'. (I5a4fc, b/161675988)
- נוסף משנה
BeyondBoundsLayoutמקומי (If8b51, b/184670295) - טקסט: ההגדרה includeFontPadding מושבתת עכשיו כברירת מחדל. בעיות החיתוך כתוצאה משימוש ב-
includeFontPadding=falseמטופלות, ולא אמור להתרחש חיתוך בסקריפטים ארוכים. (I31c84, b/171394808)
תיקוני באגים
-
ComposeContentTestRule.setContentיציג עכשיוIllegalStateExceptionאם תנסו להגדיר תוכן כשכבר יש תוכן. (I888a5, b/199631334) - תוקנה קריסה שנגרמה בגלל תוכן הלוח בזמן קריאה מהלוח ב-Android. (I06020, b/197769306)
- שיפור הדוגמאות של גלילה ב-RSB. (I6a596)
External Contribution
- העדכון בוצע לשימוש ב-Kotlinx coroutines 1.6.0 (I3366d)
גרסה 1.2.0-alpha04
23 בפברואר 2022
androidx.compose.ui:ui-*:1.2.0-alpha04 מופץ. גרסה 1.2.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
נוספו הפונקציות
ComposableTarget,ComposableTargetMarkerו-ComposableOpenTargetשמאפשרות דיווח בזמן קומפילציה על מצבים שבהם פונקציה ניתנת להגדרה מופעלת בטירגוט של כלי שלא נועד לשימוש בה.ברוב המקרים, אפשר להסיק את ההערות האלה באמצעות התוסף של מהדר Compose, ולכן השימוש בהערות האלה ישירות צריך להיות נדיר . המקרים שלא ניתן להסיק לגביהם כוללים יצירה ושימוש בפונקציית החלה בהתאמה אישית, פונקציות מופשטות שניתנות להרכבה (כמו שיטות ממשק), שדות או משתנים גלובליים שהם ביטויי למדה שניתנים להרכבה (משתנים מקומיים ופרמטרים נגזרים), או כשמשתמשים ב-
ComposeNodeאו בפונקציות קומפוזיציה קשורות.במקרה של פונקציות מותאמות אישית, הפונקציות המורכבות שקוראות ל-
ComposeNodeאו ל-ReusableComposeNodeצריכות להוסיף הערהComposableTargetלפונקציה ולכל סוגי הפרמטרים של lambda שניתנים להרכבה. עם זאת, מומלץ ליצור הערה עם התגComposableTargetMarker, ואז להשתמש בהערה המסומנת במקום בתגComposableTargetישירות. הערה שאפשר להרכיב ומסומנת ב-ComposableTargetMarkerשווה ל-ComposbleTargetעם השם המלא של מחלקת המאפיינים כפרמטר של ה-applier. דוגמה לשימוש ב-ComposableTargetMarkerמופיעה במאמרanroidx.compose.ui.UiComposable. (I38f11)
Font(resId, ...)עכשיו מקבל loadingStrategy ב-API יציב. (Ief3d2)
FontLoadingStrategyהוא עכשיו API יציב. (I1ee35, b/174162090)תמיכה בטעינה אסינכרונית של גופנים בטקסט (I77057, b/214587005)
הוספת bridge API להמרת
Font.ResourceLoaderמותאם אישית ל-FontFamily.Resolver. (Ia0060)
תיקוני באגים
- הערכים שצוינו
FontFamily.Resolverמועברים לקומפוזיציות משנה כמו Popup. - הערכים שצוינו
Font.ResourceLoaderמועברים לקומפוזיציות משנה כמו Popup. (I48fa5)
גרסה 1.2.0-alpha03
9 בפברואר 2022
androidx.compose.ui:ui-*:1.2.0-alpha03 מופץ. גרסה 1.2.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- השיטות
notifyFocusedRectב-TextInputSessionוב-TextInputServiceיצאו משימוש ולא יופעלו. במקום זאת, אתם צריכים להשתמש ב-BringIntoViewRequester. (Ia4302, b/192043120, b/216842427, b/178211874) - הוספנו את method
destroyDisplayListDataל-stub classRenderNode(I1e659, b/216660268) - נוסף API חדש שמאפשר למדוד מראש את הרכיבים של
SubcomposeLayoutשהכנתם מראש. (I857ea) נוספה הפונקציה
movableContentOfשממירה lambda קומפוזבילי ל-lambda שמעביר את המצב שלו, ואת הצמתים התואמים, לכל מיקום חדש שבו הוא נקרא. כשהשיחה הקודמת יוצאת מהקומפוזיציה, המצב נשמר באופן זמני, ואם שיחה חדשה ל-Lambda נכנסת לקומפוזיציה, המצב והצמתים המשויכים מועברים למיקום של השיחה החדשה. אם לא נוספת שיחה חדשה, המצב מוסר באופן סופי והתראות נשלחות למשתמשים שזוכרים את השיחות.אם קוראים ל-
movableContentOflambda כמה פעמים באותה קומפוזיציה, נוצרים מצב וצמתים חדשים לכל קריאה. כשהקריאות יוצאות מהקומפוזיציה ונכנסות קריאות חדשות, המצב מועבר מהקריאות הראשונות שיוצאות לקריאות שנכנסות, לפי הסדר שבו הן נקראות. כל המידע שלא נדרש לשיחות חדשות מוסר באופן סופי. (Ib4850)האפליקציה
FontFamilyResolverזמינה עכשיו דרךLocalFontFamilyResolver.currentנוספו
createFontFamilyResolver(context)ו-createFontFamilyResolver(context, coroutineScope)כדי ליצור פונקציות חדשות לפתרון בעיות של FontFamily מחוץ לשימוש ב-Compose.התכונות Paragraph ו-MultiParagraph מקבלות עכשיו
FontFamily.Resolverהתג
TextLayoutResult.layoutInput.fontFamilyResolverמכיל עכשיו את המקודד שמשמש לפריסה הזו. התגTextLayoutResult.layoutInput.resourceLoaderהוצא משימוש כי הוא כבר לא בשימוש. (Id5a45, b/174162090)תמיכה בטעינת גופנים אסינכרונית ואופציונלית, עם התנהגות חלופית. הנתיב הזה משמש את Text ו-TextField, והוא נחשף דרך FontFamilyResolver
תמיכה בטעינה מראש של גופנים באמצעות
FontFamilyResolver.preloadההגדרה
FontFamilyResolver.setAsyncLoadContextמאפשרת להגדיר את ההקשר הגלובלי של קורוטינה שמשמש לטעינת גופנים אסינכרוניים. (I87fe8, b/174162090)נוסף
AndroidFont, API חדש ברמה נמוכה שמאפשר לספק סוגים חדשים של תיאורי משאבי גופנים ב-Android. לדוגמה, טעינת גופנים מקצה עורפי ספציפי לאפליקציה, איתור אופציונלי של גופנים שהותקנו מראש במכשיר או טעינת גופן ממקור שלא מסופק על ידי מפעלי הגופנים הנוכחיים.הרחבת
Font.ResourceLoadedAPI כדי לתמוך בטעינת גופנים אופציונלית ואסינכרונית. לא מומלץ למפתחי אפליקציות להשתמש ישירות ב-API הזה. כדי להוסיף סוגים חדשים של גופנים, אפשר לעיין במאמרAndroidFont.פונקציית התוסף
Font.AndroidResourceLoaderמאפשרת ליצורFont.ResourceLoaderכשלא מדובר בהרכבה.נוסף פרמטר
loadingStrategyלגופנים מבוססי-משאבים, כדי לאפשר טעינה אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים להורדה. (Ie5aea, b/174162090)ה-constructor של
Typeface(FontFamily)הוצא משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, וההורדה של גופנים להורדה עשויה להימשך עד 10 שניות. בגופנים שאפשר להוריד, הקריאה הזו עשויה להיחסם למשך 10 שניות. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload.האפשרות
fontResource(FontFamily): Typefaceהוצאה משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, וההורדה של גופנים להורדה עשויה להימשך עד 10 שניות. במקום זאת, אפשר להשתמש ב-FontFamilyResolver.preload(If8e7c, b/174162090)ה-constructor של
SubcomposeLayoutStateשמקבלmaxSlotsToRetainForReuseהוצא משימוש. במקום זאת, יש קונסטרוקטור חדש שמקבלSubcomposeSlotReusePolicy– ממשק חדש שמאפשר שליטה יותר מדויקת בחריצים שצריך לשמור לשימוש חוזר בעתיד. (I52c4d)הפונקציות HSV ו-HSL מוצגות ב-
Colorכ-API לא ניסיוני. מרחב הצבעים Oklab הוא עכשיו API ציבורי. (I08fb6, b/180731008)הוצא משימוש
AndroidComposeTestRule.AndroidComposeStatement, שלא נועד להיות בממשק API ציבורי ולא עשה שום דבר בשבילכם בכל מקרה. (Ibc46b)שינוי שם של מחלקת kt שנוצרה באופן פנימי (Ia0b9e, b/174162090)
הוסר
FontLoadingStrategy.values(I42a9d, b/174162090)הכלי Global font loader נקרא עכשיו
FontFamilyResolver. (I4f773, b/174162090)שימוש במערכת חדשה לטעינת גופנים במחשב. (I9ce5c, b/174162090)
FontFamily.Resolver.resolvereturnsState<Any>(I4406c, b/174162090)
תיקוני באגים
- כששדה טקסט נמצא בפוקוס והמקלדת מוצגת, הוא יישאר מעל המקלדת אם מצב הקלט הרך הוא
ADJUST_PAN. (I8eaeb, b/190539358, b/192043120) - ב-Desktop נעשה שימוש בהרכב מקומי עבור
FontFamily.Resolver - הגרסה למחשב של
FontLoaderהוצאה משימוש - מפעל חדש של
createFontFamilyResolverבמחשב (I6bbbb, b/174162090) - סוג הקלט של המקלדת הווירטואלית לא מהבהב יותר כשמעבירים את המיקוד בין שדות טקסט. (I1bf50, b/187746439)
גרסה 1.2.0-alpha02
26 בינואר 2022
androidx.compose.ui:ui-*:1.2.0-alpha02 מופץ. גרסה 1.2.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוספו
Modifier.onRotaryScrollEvent()ו-Modifier.onPreRotaryScrollEvent()למכשירים לבישים עם לחצן צד מסתובב (I18bf5, b/210748686) - הוספת תוסף ניסויי
View.createLifecycleAwareRecomposer(I0cde6)
External Contribution
-
PointerEvent.scrollDelta.yהפוך עכשיו ב-Android (עכשיו הוא מחזיר 1 במקום -1 אם מטים את גלגל העכבר ימינה) (Ia9811)
גרסה 1.2.0-alpha01
12 בינואר 2022
androidx.compose.ui:ui-*:1.2.0-alpha01 מופץ. גרסה 1.2.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוצא משימוש
FontFamily.canLoadSynchronously. למאפיין הזה אין משמעות סמנטית. (Ica5ef) - נוסף שדה זהות ל-
CompositionDataליצירת מזהים קבועים בכלי לבדיקת פריסות. (Ic116e) - נוספו מזהי מכשירים של Wear OS לרשימת המכשירים בתצוגה המקדימה (I93232)
עדכונים של תלות
- עכשיו תלוי ב-Kotlin
1.6.10.
גרסה 1.1
גרסה 1.1.1
23 בפברואר 2022
androidx.compose.ui:ui-*:1.1.1 מופץ. גרסה 1.1.1 מכילה את השמירות האלה.
תיקוני באגים
- תיקון
NullPointerExceptionב-androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(aosp/1947059, b/206677462) - תוקנה קריסה שנגרמה בגלל תוכן הלוח בזמן קריאה מהלוח ב-Android. (I06020, b/197769306)
- תוקנה בעיה ב-RTL ב-
LazyVerticalGrid(aosp/1931080, b/207510535)
גרסה 1.1.0
9 בפברואר 2022
androidx.compose.ui:ui-*:1.1.0 מופץ. גרסה 1.1.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.0.0
- תמיכה יציבה באפקט הגלילה העודפת ב-Android 12
- שיפורים בגודל משטח המגע
- שימו לב: ברכיבי Material ב-Compose 1.0, שטח הפריסה יורחב כדי לעמוד בהנחיות הנגישות של Material בנוגע לגודל משטח המגע. לדוגמה, משטח המגע של לחצן יתרחב לגודל מינימלי של 48x48dp, גם אם הגדרתם שהגודל של הלחצן יהיה קטן יותר. כך, התנהגות Compose Material זהה להתנהגות של רכיבי Material Design, ומתקבלת התנהגות עקבית אם משלבים בין Views לבין Compose. השינוי הזה גם מבטיח שכשתצרו את ממשק המשתמש באמצעות רכיבי Compose Material, הדרישות המינימליות לנגישות של משטחי מגע יתקיימו.
- תמיכה יציבה בפס ניווט
- העברנו מספר ממשקי API שהיו בשלב הניסוי לגרסה יציבה
- תמיכה בגרסאות חדשות יותר של Kotlin
גרסה 1.1.0-rc03
26 בינואר 2022
androidx.compose.ui:ui-*:1.1.0-rc03 מופץ. גרסה 1.1.0-rc03 מכילה את השמירות האלה.
תיקוני באגים
- עדכון לתמיכה ב-Compose Material 1.1.0-rc03
גרסה 1.1.0-rc01
15 בדצמבר 2021
androidx.compose.ui:ui-*:1.1.0-rc01 מופץ. גרסה 1.1.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג שגרם לכך שפעולות גלילה של נגישות לא הופיעו (I7cbfb)
-
SemanticsNodeInteraction.captureToImage()יפעל גם אםHardwareRenderer.isDrawingEnabled()הואfalse, על ידי הפעלת ההגדרה למשך השיחה (Idf3d0)
גרסה 1.1.0-beta04
1 בדצמבר 2021
androidx.compose.ui:ui-*:1.1.0-beta04 מופץ. גרסה 1.1.0-beta04 מכילה את השמירות האלה.
תכונות חדשות
- עודכן כך שיהיה תואם ל-Kotlin
1.6.0
שינויים ב-API
- בוצע ניקוי של אפשרות ה-null ב-
androidx.core.view(I7078a, b/204917439) - נוספו ממשקי API ניסיוניים שמאפשרים למשתמשים לצרוך את PointerInputchange כמכלול או לבדוק אם הוא נצרך או לא. (I2e59d)
- הוספת תמיכה באירועים של גלגל הגלילה של העכבר בשכבת ממשק המשתמש. (Ia14eb, b/198214718)
- הוספת עומסים עודפים ניסיוניים
Modifier.composedשמקבלים מפתחות להשוואה לשוויון, ומתאימים לדילוג על אופטימיזציות. (Ice799, b/205851704) - המרחק
ComposeNotIdleExceptionמתחיל עכשיו מExceptionבמקום מThrowable. הערה: המשמעות היא שסעיפי catch שתפסוExceptionעשויים לתפוס עכשיוComposeNotIdleException, מה שלא קרה בעבר. (I9c217)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שנקודות האחיזה של הטקסט לא זזו כשחלו שינויים במידת החשיפה של IME. (I25f2e)
גרסה 1.1.0-beta03
17 בנובמבר 2021
androidx.compose.ui:ui-*:1.1.0-beta03 מופץ. גרסה 1.1.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- נוסף משנה חדש Modifier.onPlaced כדי לאפשר מעקב אחרי שינוי המיקום. לכן, אפשר לבצע שינויים נוספים בהיסט של משנה צאצא על סמך השינוי שנצפה במיקום. (I558fd)
- הוסרו
InjectionScope.flush()ו-InjectionScope.dispose(). הפעולה של ניקוי כל האירועים והסרת ההיקף מתבצעת עכשיו בסוף השיטה perform*Input() שנקראת, כמו קודם. (I2bed8) - הוסרו
MultiModalInjectionScope.Touchו-MultiModalInjectionScope.Mouse. כדי להוסיף אירועי מגע ועכבר לתנועות מרובות מצבים, אפשר עכשיו להשתמש ב-MultiModalInjectionScope.touch()וב-MultiModalInjectionScope.mouse(). שתי הפונקציות האלה מקבלות ביטוי למדא עם היקף הנמען של המצב הזה. (Idde18)
תיקוני באגים
- ערך ברירת המחדל של
durationMillisב-TouchInjectionScope.swipeWithVelocityמחושב עכשיו כך שההחלקה תהיה אפשרית. (I19deb)
גרסה 1.1.0-beta02
3 בנובמבר 2021
androidx.compose.ui:ui-*:1.1.0-beta02 מופץ. גרסה 1.1.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף BringIntoView API ניסיוני שמאפשר לשלוח בקשה להורים כדי שהם יגללו להצגת פריט (Ib918d, b/195353459)
- ממשקי API חדשים לאנימציה לתמיכה בכלים. באופן ספציפי, הם מאפשרים לכלי לבדוק את האנימציות ואת ההגדרות שלהן במעברים. (I4116e)
External Contribution
- נוסף Modifier.pointerHoverIcon (I95f01)
גרסה 1.1.0-beta01
27 באוקטובר 2021
androidx.compose.ui:ui-*:1.1.0-beta01 מופץ. גרסה 1.1.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- נוסף ממשק API ניסיוני
BringIntoViewשמאפשר לשלוח בקשה להורים כדי שהם יגללו ויציגו פריט (Ib918d, b/195353459) - ממשקי API חדשים לאנימציה לתמיכה בכלים. באופן ספציפי, הם מאפשרים לכלי לבדוק את האנימציות ואת ההגדרות שלהן במעברים. (I4116e)
גרסה 1.1.0-alpha06
13 באוקטובר 2021
androidx.compose.ui:ui-*:1.1.0-alpha06 מופץ. גרסה 1.1.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- הסרת
ExperimentalComposeUiApiמהחשבוןViewRootForInspectorומ-LayoutInfo.ownerViewId(I5c2e3) - נוספה פונקציית עומס יתר (overload) ל-Layout ללא פרמטרים של ילדים, עם יעילות משופרת (Ib0d9a)
- הוסר
InternalCompilerApiמשיטות Composer שנדרשות לקריאה בין מודולים (I1aa0b) - הפונקציה
SemanticsNodeInteraction.performSemanticsActionמחזירה עכשיו אתSemanticsNodeInteractionשעליו הופעלה הפונקציה. (I9e5db) - נוסף LocalInputModeManager CompositionLocal כדי לזהות TouchMode/NonTouchMode. (I6a83c, b/175899786)
- נוסף
viewConfiguration: ViewConfigurationל-LayoutInfoכדי לאפשר לצרכנים לקבל את הערך הנכון של דברים כמו זמן קצוב לתפוגה של לחיצה ארוכה. (I76ca6)- נוספה האפשרות
viewConfiguration: ViewConfigurationל-InjectionScopeכדי לאפשר לבדיקות להתאים את הזרקת הקלט על סמך דברים כמו זמן קצוב לתפוגה של לחיצה ארוכה או טווח תנועה של מגע. - שינינו את משך הזמן שמוגדר כברירת מחדל ללחיצה ארוכה וללחיצה כפולה עבור קלט מגע ועכבר, כך שהוא מבוסס על הערכים ב-
InjectionScope.viewConfiguration.
- נוספה האפשרות
- הטמעה של ExposedDropdownMenu על סמך ExposedDropdownMenuBox עם TextField ו-DropdownMenu בפנים (If60b2)
- המאפיין dismissOnOutsideClick נוסף ל-PopupProperties, והוא מחליף את dismissOnClickOutside שהוצא משימוש. הנכס החדש מקבל את מיקום הקליק ואת גבולות העוגן, וכך מאפשר שליטה מדויקת יותר בשאלה אם צריך להפעיל את onDismissRequest או לא. לדוגמה, זה יכול להיות שימושי כדי למנוע סגירה של העוגן במקרה של מגע בעוגן.
- הפונקציה updateAndroidWindowManagerFlags נוספה ל-PopupProperties, ומציעה שליטה ברמה נמוכה על הדגלים שהחלון הקופץ מעביר ל-WindowManager של Android. הפרמטר של פונקציית ה-lambda יהיה הדגלים שמחושבים מהערכים של PopupProperties שיוצרים דגלים של WindowManager: לדוגמה, focusable. התוצאה של ה-lambda תהיה הדגלים הסופיים שיועברו אל Android WindowManager. כברירת מחדל, הפונקציה updateAndroidWindowManagerFlags לא משנה את הדגלים שמחושבים מהפרמטרים. צריך להשתמש ב-API הזה בזהירות, רק במקרים שבהם יש דרישות מאוד ספציפיות לגבי אופן הפעולה של החלון הקופץ. (I6e9f9)
- הפונקציה
Recomposer.stateהוצאה משימוש והוחלפה בפונקציהRecomposer.currentStateכדי לשנות את הסוג שלה ל-StateFlow (Ic2ab3, b/197773820) - הוספת את
flush()ואתdispose()אלInjectionScope. משתמשים בהן כשרוצים לנקות את כל האירועים שהוכנסו לתור באופן מיידי, וכשרוצים להשמיד את ההיקף, בהתאמה. (Ifb73a) - נוסף
performScrollToNode(matcher: SemanticsMatcher)שגורם לגלילה של מאגר תוכן שניתן לגלילה אל התוכן שתואם ל-matcher שצוין. (Ic1cb8) -
InjectionScopeכולל עכשיו אתDensity, כך שאפשר להמיר בקלות בין יחידות px ו-dp ב-performTouchInputובמוצרים נוספים של Google. (I8fe1f)
תיקוני באגים
- AndroidView מעביר עכשיו את LocalLifecycleOwner ואת LocalSavedStateRegistryOwner לתצוגה שלו דרך ViewTreeLifecycleOwner ו-ViewTreeSavedStateRegistryOwner. (I38f96, b/179708470)
- תוקנה בעיה שבה לפעמים לא ניתן להשתמש בתכונה SwipeToDismissBox ב-WearOS כדי לסגור אפליקציות. (I9387e)
- ברירת המחדל למרווח הזמן בין אירועי קלט מוזרקים השתנתה מ-10ms ל-16ms. הדבר עלול לשנות את התוצאה של בדיקות שמבצעות מחוות קלט, כמו החלקה ספציפית. (I829fd)
גרסה 1.1.0-alpha05
29 בספטמבר 2021
androidx.compose.ui:ui-*:1.1.0-alpha05 מופץ. גרסה 1.1.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה בתקשורת בין משנים (Id5467, b/198826874)
- הוספנו מצביעים היסטוריים ניסיוניים ל-PointerEventChange. (Ic1fd8, b/197553056, b/199921305)
- הוספת את
density: DensityואתlayoutDirection: LayoutDirectionאלLayoutInfo. כך צרכניLayoutInfoיכולים לפרש את המאפיינים והמיקום שנחשפים ב-LayoutInfoכראוי. (I002f1) - נוספה תמיכה ניסיונית בהחדרת אירועי עכבר. משתמשים ב-
performMouseInputכדי להתחיל לשלוח אירועי עכבר, או שולחים אירועי עכבר דרך המאפייןMouseשלMultiModalInjectionScopeבמהלך תנועת קלט מרובת מצבים עםperformMultiModalInput. מידע נוסף מופיע בMouseInjectionScope. (Iaa4a8, b/190493367)
תיקוני באגים
- תוקנה תמיכת הנגישות ברכיבים שניתן לגלול בהם (גם כאלה שנטענים באופן עצלני וגם כאלה שלא) בהקשר של גלילה (I6cdb0)
- שיפור
TouchInjectionScope.swipeWithVelocity. הוא מקבל עכשיו מגוון רחב יותר של משתני קלט, ויציע שינויים בקלט אם לא ניתן ליצור החלקה (I40fbe, b/182477143)
גרסה 1.1.0-alpha04
15 בספטמבר 2021
androidx.compose.ui:ui-*:1.1.0-alpha04 מופץ. גרסה 1.1.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
-
PointerEventכולל עכשיוPointerEventTypeלתמיכה באירועים של העברת העכבר. (I091fa) - אפשר לילדים לקבל קלט מצביע מחוץ לגבולות הקלט של המצביע של ההורה. הורים יכולים ליירט את הקריאות האלה באמצעות מאפיין PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655)
- הוצאו משימוש
performGestureו-GestureScope, שהוחלפו ב-performTouchInputוב-TouchInjectionScope. (Ia5f3f, b/190493367) - הוספנו את
touchBoundsInRootאלSemanticsNodeשכולל את הגודל המינימלי של משטח המגע, כדי שמפתחים יוכלו לוודא שמשטחי המגע עומדים בדרישות המינימליות של נגישות. (I2e14b, b/197751214) - ביצוע מחדש של הטמעה של inspectable (I927bc, b/191017532)
- שם הפרמטר של inspectable שונה כדי להתאים לפרמטר composed (I3a482, b/191017532)
הוספנו את
performTouchInputואתTouchInjectionScopeכתחליף ל-performTouchInputול-TouchInjectionScope, כדי לפתוח את האפשרות לשימוש באמצעים אחרים (כמו עכבר).ל-
TouchInjectionScopeיש את אותן שיטות כמו ל-GestureScope, למעטmovePointerToו-movePointerBy, ששמותיהן שונו ל-updatePointerToו-updatePointerBy. כל שאר השיטות זהות.ההתנהגות של
TouchInjectionScopeכמעט זהה לזו שלGestureScope, עם שני הבדלים קטנים:- כששולחים אירוע down בזמן שהסמנים הוזזו בלי לשלוח אירוע move (במילים אחרות, נעשה שימוש ב-
updatePointerTo(), אבל לא ב-move(), ואז מפעילים אתdown()), ההטמעה הקודמת הייתה מקדמת את זמן האירוע ושולחת אירוע move לפני שליחת אירוע down. ההטמעה החדשה עדיין שולחת את האירוע move, אבל לא מקדמת את זמן האירוע בתרחיש הספציפי הזה. - כששולחים אירוע up בזמן שהסמנים הוזזו בלי לשלוח אירוע move (בדומה למה שקורה למעלה), ההטמעה הקודמת הייתה מקדמת את זמן האירוע ושולחת אירוע move לפני שליחת אירוע up. ההטמעה החדשה לא עושה את זה: המיקומים החדשים של מצביעי העכבר ישתקפו רק דרך אירוע ה-up.
לבסוף,
TouchInjectionScopeמציגה שיטה חדשהcurrentPosition(pointerId: Int)לקבלת המיקום הנוכחי של הסמן הנתון. (If1191, b/190493367)- כששולחים אירוע down בזמן שהסמנים הוזזו בלי לשלוח אירוע move (במילים אחרות, נעשה שימוש ב-
תיקוני באגים
- מאפשרים לחיתוך להרחיב את גבולות יעד המגע מעבר לאזור החיתוך למטרות של יעד מגע מינימלי. (I43e10, b/171509422)
- נוספה תמיכה בגלילה עם אפקט מתיחה במכשירי Android 12. (Iccf3c, b/171682480)
גרסה 1.1.0-alpha03
1 בספטמבר 2021
androidx.compose.ui:ui-*:1.1.0-alpha03 מופץ. גרסה 1.1.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- Compose
1.1.0-alpha03עודכן כך שיהיה תלוי ב-Kotlin1.5.30. (I74545)
שינויים ב-API
- נוסף
Modifier.inspectableכדי לעטוף משנים אחרים. (I1909b, b/191017532) - הוספנו את
BlurredEdgeTreatmentAPI כדי לפשט את תרחישי השימוש בטשטוש ולשלב אותם עם שילובים נפוצים יותר של דגלי קליפים ו-TileModes. ברוב תרחישי השימוש, התוכן המטושטש מוצג מחוץ לגבולות התוכן המקורי, והאזורים שמחוץ לגבולות האלה מטושטשים בשחור שקוף. לחלופין, התוכן נחתך לגבולות התוכן, והדגימה של הגבול הקרוב ביותר מתבצעת עבור ליבות הטשטוש שחורגות מגבולות התוכן. (I6b4b7, b/166927547) - נוספה תמיכה ב-RenderEffect ב-Compose לשולחן העבודה. הוספנו את OffsetEffect ואת modifier הטשטוש כדרך פשוטה להוסיף אפקטים חזותיים של טשטוש לחלק מהיררכיית הקומפוזיציה. (I0f6aa, b/166927547)
- הוספנו את RenderEffect API
שאפשר להגדיר אותו באופן אופציונלי ב-
Modifier.graphicsLayerכדי לשנות את התוכן של השכבה עצמה. אפשר להשתמש בשיטה הזו כדי לטשטש את התוכן של רכיב קומפוזבילי ושל רכיבים קומפוזביליים צאצאים בהיררכיית קומפוזיציה. (I47c4d, b/166927547) - ל-AwaitPointerEventScope יש עכשיו withTimeout() ו-withTimeoutOrNull() (I507f0, b/179239764, b/182397793)
- הוספנו גודל מינימלי של משטח מגע ל-ViewConfiguration לשימוש בסמנטיקה ובקלט של מצביע, כדי להבטיח נגישות. (Ie861c)
- הוספנו תמיכה ב-TileMode.Decal, שימושי להגדרת התנהגות הקצוות של RenderEffects מבוססי-טשטוש. (I7e8ed, b/166927547)
-
performScrollToIndex,performScrollToKey,hasScrollToIndexActionו-hasScrollToKeyActionהם עכשיו API יציב (I142ae, b/178483889) - נוספה שיטת בדיקה כדי לקבל את הגבולות של האזור החתוך. (I6b28e)
תיקוני באגים
- הוסרה השיטה isBounded מ-BlurredEdgeTreatment לטובת בדיקה מפורשת אם פרמטר הצורה הוא null. (I85d68)
גרסה 1.1.0-alpha02
18 באוגוסט 2021
androidx.compose.ui:ui-*:1.1.0-alpha02 מופץ. גרסה 1.1.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- עכשיו יש תמיכה ב-PointerEvent בקריאת מצב לחצן העכבר ומצב מקש הצירוף במקלדת. (I6310c, b/180075467)
- מחוות מוזרקות משתמשות עכשיו בזמן של MainTestClock כמקור האמת לזמן. השעה הנוכחית של אירועים מוזרקים ב-
performGestureתאותחל לשעה הנוכחית של MainTestClock. (Ifb364, b/192064452) - נוסף בנאי
DpRect(DpOffset, DpSize)(I2cf16, b/194219828) - נוסף סיווג DpSize (I7abb1, b/194219828)
תיקוני באגים
- עדכנו את ניתוח ה-XML של הגרפיקה הווקטורית כדי לתמוך ב-ColorStateLists כמאפייני גוון צבע בסיסיים ב-VectorDrawables. (I86915, b/195668138)
גרסה 1.1.0-alpha01
4 באוגוסט 2021
androidx.compose.ui:ui-*:1.1.0-alpha01 מופץ. גרסה 1.1.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הפרמטר
RelocationRequester.bringIntoViewמקבל עכשיו מלבן כפרמטר, מה שמאפשר לנו להציג חלק מפריט שאפשר להרכיב (Ice2c5, b/194330245) -
AnimatedImageVectorוממשקי ה-API שקשורים אליו נמצאים עכשיו במודול החדשandroidx.compose.animation:animation-graphics. (I60873) - נוסף משנה ניסיוני לטיפול בבקשות להעברה. (I65a97, b/178211874)
הוספנו את BrushPainter API כדי לתמוך בציור של Brush שרירותי בתוך Painter, בדומה ל-ColorPainter
בוצע עדכון של Brush API כך שיכלול פרמטר של גודל פנימי שנשלחת לגביו שאילתה ב-BrushPainter (Ia2752, b/189466433)
השיטה DrawScope#drawImage עודכנה כך שהיא צורכת מלבנים של מקור ויעד, כדי לצרוך פרמטר FilterQuality אופציונלי. האפשרות הזו שימושית לאומנות פיקסלים שמיועדת להיות מפוקסלת כשמגדילים אותה. בוצע עדכון של BitmapPainter + Image composable כך שיכללו גם פרמטר אופציונלי של FilterQuality (Ie4fb0, b/180311607)
נוספה שיטת
GestureScope.advanceEventTimeכדי לתת שליטה רבה יותר בתזמון של אירועים במחוות (Ibf3e2)
תיקוני באגים
- כדי לשפר את התמיכה בשרשור של משני ציור, צריך לוודא שההטמעה של Modifier.paint קוראת ל-drawsContent.
בעבר, הפונקציה Modifier.paint הייתה אמורה להיות צומת עלה בשרשרת של הפונקציות Modifier, אבל בגלל זה אי אפשר היה להגדיר אותה במאגר שאפשר להרכיב (למשל, box) או להוסיף לה קישוטים נוספים כמו
Modifier.paint().border(). הוספנו את הקריאה Modifier.paint ל-drawContent אחרי שסיימנו לצייר את התוכן של האובייקט painter שצוין, כדי לשפר את העקביות בהתנהגות של התבנית modifier. (Ibb2a7, b/178201337, b/186213275) - תיבות הדו-שיח פועלות עכשיו בהתאם להתנהגות של שינוי הגודל בפלטפורמה. כדי לשנות את אופן הפעולה הזה, מגדירים את הערך
usePlatformDefaultWidthל-false. (Iffaed, b/192682388) - הועבר
InfiniteAnimationPolicyאל :compose:ui (I5eb09, b/160602714) - הגלילה באמצעות פעולות סמנטיות ברשימות עצלות וברכיבי גלילה רגילים מונפשת עכשיו (Id9066, b/190742024)
גירסה 1.0
גרסה 1.0.5
3 בנובמבר 2021
androidx.compose.ui:ui-*:1.0.5 מופץ. גרסה 1.0.5 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה במעקב אחר מופעים של derivedStateOf. (aosp/1792247)
גרסה 1.0.4
13 באוקטובר 2021
androidx.compose.ui:ui-*:1.0.4 מופץ. גרסה 1.0.4 מכילה את השמירות האלה.
עדכונים של תלות
- העדכון כולל תלות ב-Kotlin
1.5.31
גרסה 1.0.3
29 בספטמבר 2021
androidx.compose.ui:ui-*:1.0.3 מופץ. גרסה 1.0.3 מכילה את השמירות האלה.
עדכונים של תלות
- העדכון כולל תלות ב-Kotlin
1.5.30
גרסה 1.0.2
1 בספטמבר 2021
androidx.compose.ui:ui-*:1.0.2 מופץ. גרסה 1.0.2 מכילה את השמירות האלה.
העדכון כולל תמיכה בגרסת Compose 1.0.2. Compose 1.0.2 עדיין תואם ל-Kotlin 1.5.21.
גרסה 1.0.1
4 באוגוסט 2021
androidx.compose.ui:ui-*:1.0.1 מופץ. גרסה 1.0.1 מכילה את השמירות האלה.
עדכונים של תלות
- העדכון כולל תלות ב-Kotlin
1.5.21.
גרסה 1.0.0
28 ביולי 2021
androidx.compose.ui:ui-*:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.
התכונות העיקריות של גרסה 1.0.0
זו הגרסה היציבה הראשונה של Compose. פרטים נוספים זמינים בבלוג הרשמי של Compose.
בעיות מוכרות
אם אתם משתמשים ב-Android Studio Bumblebee Canary 4 או ב-AGP
7.1.0-alpha04/7.1.0-alpha05, יכול להיות שתיתקלו בקריסה הבאה:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"כדי לפתור את הבעיה, צריך להגדיל באופן זמני את minSdkVersion ל-24 ומעלה בקובץ
build.gradle. הבעיה הזו תיפתר בגרסה הבאה של Android Studio Bumblebee וב-AGP7.1. (b/194289155)
גרסה 1.0.0-rc02
14 ביולי 2021
androidx.compose.ui:ui-*:1.0.0-rc02 מופץ. גרסה 1.0.0-rc02 מכילה את השמירות האלה.
תיקוני באגים
- תיבות הדו-שיח פועלות עכשיו בהתאם להתנהגות של שינוי הגודל בפלטפורמה. כדי לשנות את אופן הפעולה הזה, מגדירים את הערך
usePlatformDefaultWidthל-false. (Iffaed, b/192682388)
גרסה 1.0.0-rc01
1 ביולי 2021
androidx.compose.ui:ui-*:1.0.0-rc01 מופץ. גרסה 1.0.0-rc01 מכילה את השמירות האלה.
תכונות חדשות
- פיצול מודול ui-tooling ל-
ui-toolingול-ui-tooling-preview(Iefa28, b/190649014)
שינויים ב-API
- הוסרו התכונות הניסיוניות
FocusManager#moveFocusInו-FocusManager#moveFocusOutשיצאו משימוש (I227d7, b/170154986, b/186567354, b/168510304) - Canvas תומך עכשיו בפרמטר contentDescription לצורך נגישות. (Ib547c)
- השם של
useDefaultMaxWidthב-PopupPropertiesשונה ל-usePlatformDefaultWidth. (I05710) - מעכשיו אפשר להשתמש ברוחב המסך המלא בתיבות דו-שיח. (I83929, b/190810877)
- הוספנו תמיכה ניסיונית בייצוגי צבעים מסוג HSV ו-HSL. (Id7cf8, b/180731008)
שינויים בהתנהגות
- Compose
@Previewמספק עכשיוLocalActivityResultRegistryOwnerשמאפשר לכם לראות תצוגה מקדימה של רכיבי Composables שמשתמשים בממשקי API כמוrememberLauncherForActivityResult()שתלויים בקיום הבעלים. (Ib13d1, b/185693006) - Compose
@Previewכולל עכשיוLocalOnBackPressedDispatcherOwnerשמאפשר לכם לראות תצוגה מקדימה של רכיבי Composables שמשתמשים בממשקי API כמוBackHandlerשתלויים בקיום הבעלים. (Ia1c05, b/185693006)
תיקוני באגים
- הועבר אל
InfiniteAnimationPolicy(androidx.compose.ui:ui) (I5eb09, b/160602714) - הסרנו באופן זמני את AnimatedImageVector כדי לשנות את מבנה המודול. (I41906, b/160602714)
גרסה 1.0.0-beta09
16 ביוני 2021
androidx.compose.ui:ui-*:1.0.0-beta09 מופץ. גרסה 1.0.0-beta09 מכילה את השמירות האלה.
שינויים ב-API
- שינוי enum Role ו-LiveRegionMode למחלקות מוטבעות עם בנאי פרטי (Id1890)
- המאפיין KeyboardCapitalization מומר למחלקה מוטבעת. (Id5a1c)
- משנים את HapticFeedbackType למחלקה מוטבעת. (I255ec)
- Modifier.pointerInteropFilter הוא @ExperimentalComposeUiApi. (Iede6c)
- המחלקות TextAlign, FontSynthesis ו-TextDirection הן עכשיו מחלקות מוטבעות. (I212fe)
- המאפיין TextOverflow משתנה למחלקה מוטבעת. (I433af)
- FontStyle היא עכשיו מחלקה מוטבעת. (I9e48b)
תיקוני באגים
- הקבועים העיקריים הם @ExperimentalComposeUiApi בשלב הזה. קוד שמשתמש בספרייה יכול להצהיר על קבועים פרטיים לפני שהספרייה עוברת לייצוב. (Ia5d48)
- מעכשיו אפשר להריץ בדיקות של כתיבת הודעות ב-Robolectric. המגבלות הבאות זוהו עד כה:
- אין מפת סיביות מקורית, ולכן
ImageBitmap()מוביל ל-NullPointerException. - אין ציור, ולכן
captureToImage()ימתין ללא הגבלת זמן למעבר הציור הבא (כלומר, הוא נכנס למצב של חסימה הדדית). - לא נטען גופן, ולכן המדידה של הטקסט תהיה שגויה. לכל התווים יש גובה קבוע של כ-20 פיקסלים ורוחב של פיקסל אחד.
-
ComposeTestRule.waitUntil {}לא מפעיל את ה-thread הראשי בזמן ההמתנה, ולכן הוא זהה ל-ComposeTestRule.mainClock.advanceTimeUntil {}צפויים להיות עוד מגבלות בעתיד. (I284fa)
- אין מפת סיביות מקורית, ולכן
נוספו כללי פרופיל
בגרסה הזו נוספו כללי פרופיל למודולים הבאים של כתיבת הודעות (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
מהם כללי פרופיל?
כללי הפרופיל של ספרייה מצוינים בקובץ טקסט
baseline-prof.txtשנמצא בספרייהsrc/mainאו בספרייה מקבילה. כל שורה בקובץ מציינת כלל, ובמקרה הזה כלל הוא תבנית להתאמה לשיטות או למחלקות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט הפרופיל של ART שקריא לבני אדם, שמשמש כשמשתמשים ב-adb shell profman --dump-classes-and-methods .... הכללים האלה מופיעים באחת משתי צורות, כדי להתמקד בשיטות או במחלקות.כלל של method יכלול את התבנית הבאה:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>כלל מחלקה יכלול את התבנית הבאה:
<CLASS_DESCRIPTOR>כאן
<FLAGS>הוא אחד או יותר מהתוויםH,Sו-Pכדי לציין אם לסמן את השיטה הזו כ'פופולרית', 'הפעלה' או 'אחרי הפעלה'.השדה
<CLASS_DESCRIPTOR>הוא המתאר של המחלקה שאליה משתייכת המתודה המטורגטת. לדוגמה, למחלקהandroidx.compose.runtime.SlotTableיהיה דסקריפטור שלLandroidx/compose/runtime/SlotTable;.
<METHOD_SIGNATURE>הוא החתימה של ה-method, והוא כולל את השם, סוגי הפרמטרים וסוגי הערכים המוחזרים של ה-method. לדוגמה, לשיטהfun isPlaced(): Booleanב-LayoutNodeיש חתימהisPlaced()Z.התבניות האלה יכולות לכלול תווים כלליים (
**,*ו-?) כדי שכלל אחד יכלול כמה שיטות או מחלקות.
מה עושים הכללים?
שיטה עם הדגל
Hמציינת שהשיטה הזו היא שיטה 'פעילה' וצריך לקמפל אותה מראש.שיטה עם הדגל
Sמציינת שהיא שיטה שמופעלת בהפעלה, וצריך לקמפל אותה מראש כדי להימנע מעלות הקומפילציה ומהפרשנות של השיטה בזמן ההפעלה.מתודה עם הסימון
Pהיא מתודה שמופעלת אחרי ההפעלה.אם מחלקה מופיעה בקובץ הזה, המשמעות היא שהיא נמצאת בשימוש במהלך ההפעלה וצריך להקצות לה מראש מקום ב-heap כדי להימנע מעלות הטעינה של המחלקה.
איך זה עובד?
- ספריות יכולות להגדיר את הכללים האלה, שייארזו בפרטי מידע שנוצרו בתהליך של פיתוח (Artifact) מסוג AAR. כשיוצרים אפליקציה שכוללת את הארטיפקטים האלה, הכללים האלה משולבים יחד, והכללים המשולבים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לאפליקציה. לאחר מכן, מערכת ART יכולה להשתמש בפרופיל הזה כשהאפליקציה מותקנת במכשירים כדי לבצע קומפילציה מראש של קבוצת משנה ספציפית של האפליקציה, וכך לשפר את הביצועים של האפליקציה, במיוחד בהפעלה הראשונה. הערה: הפעולה הזו לא תשפיע על אפליקציות שאפשר לבצע בהן ניפוי באגים.
גרסה 1.0.0-beta08
2 ביוני 2021
androidx.compose.ui:ui-*:1.0.0-beta08 מופץ. גרסה 1.0.0-beta08 מכילה את השמירות האלה.
שינויים ב-API
- ה-enum
NestedScrollSourceמוחלף במחלקה מוטמעת. (Ie321b, b/187055290) - השם של
FocusManager.clearFocus(forcedClear = true)שונה ל-FocusManager.clearFocus(force = true)(Ia0c41) - שינינו את השימוש בסוגי enum למחלקות מוטבעות כדי למנוע בעיות בשימוש בהצהרות when מקיפות כשמוסיפים ערכים חדשים של enum. (I2b5eb)
- הסרת
@ExperimentalComposeUiApiמהחשבוןPopupProperties. (I01fa6) - הערך
PointerTypeהשתנה מספירה למחלקה מוטבעת (If5058) - המאפיינים הסמנטיים ContentDescription ו-Text הם כבר לא ערכים יחידים אלא רשימות. כך אפשר למזג אותם כמו שהם במקום לשרשר אותם. בנוסף, סיפקנו ממשקי API משופרים לבדיקה כדי להשתמש בשינויים האלה (Ica6bf, b/184825850)
- האפשרות
Modifier.focusModifier()הוצאה משימוש והוחלפה באפשרותModifier.focusTarget()(I6c860) -
Modifier.onSizeChanged()ו-Modifier.onSizeChanged()הן כבר לא פונקציות מוטמעות (I727f6, b/186109675)Modifier.onGloballyPositioned() - ה-enum
KeyboardTypeמוחלף במחלקה מוטמעת. (I73045, b/187055290) - הוחלף enum
FocusStateבממשקFocusState(Iccc1a, b/187055290) - ה-enum ImeAction מוחלף במחלקה מוטבעת. (I18be5, b/187055290)
-
PlaceholderVerticalAlignמומר לכיתה מוטמעת. (If6290) - TextUnitType הוא עכשיו מחלקה מוטבעת. (I4cba9)
- הפונקציות
AnnotatedString.withAnnotationהן עכשיו ExperimentalTextApi במקום ExperimentalComposeApi. (I0cd0a)- הבונה של TextUnit עם TextUnitType הוא עכשיו ExperimentalTextApi במקום ExperimentalComposeApi.
תיקוני באגים
- תוקן הבאג שהוצג בגרסת beta07 שבו פריטים של LazyColumn/Row הוצגו באופן חלקי אחרי הגלילה (I8c9ac, b/188566058)
- החל מעכשיו, הרכיבים
detectDragGesures, detectVerticalGesturesו-detectHorizontalGesturesיבצעו את השינוי במיקום באופן אוטומטי, ואין צורך לקרוא ל-change.consumePositionChange בפונקציות הקריאה החוזרת onDrag (I42fc4, b/185096350, b/187320697) - תוקנה בעיה שקשורה ל-LayoutModifiers שסיפקו קווי יישור. תוקנה באג שגרם לכך שהמערכת לא מדדה מחדש את הרכיב ההורה כשקווי היישור של הרכיבים הצאצאים השתנו. (I4401f, b/174315652)
-
Modifier.onGloballyPositioned()השתנה כך שהוא מדווח על הקואורדינטות של המשנה הזה בשרשרת המשנים, ולא על קואורדינטות הפריסה אחרי החלת כל המשנים. המשמעות היא שעכשיו סדר המאפיינים משפיע על הקואורדינטות שידווחו. (Ieb67d, b/177926591)
גרסה 1.0.0-beta07
18 במאי 2021
androidx.compose.ui:ui-*:1.0.0-beta07 מופץ. גרסה 1.0.0-beta07 מכילה את השמירות האלה.
שינויים ב-API
- נוסף ממשק
ViewRootForInspectorלשימוש בכלי לבדיקת מודעות (Ib70df) -
SubcomposeLayoutStateתומך עכשיו בהגדרת מספר המשבצות שאפשר לעשות בהן שימוש חוזר. הפריסה תשמור על עד מספר המשבצות הזה פעילות במקום להשליך אותן כדי לעשות שימוש חוזר במשבצת בפעם הבאה שנצטרך משבצת חדשה (Ieb981) - ה-enum KeyEventType מוחלף במחלקה מוטבעת. (Id670a, b/187055290)
- ה-enum
FocusDirectionמוחלף במחלקה מוטמעת. (Ib6d03, b/187055290, b/184086802) - הוספנו אפשרות להעביר את הסטטוס של SubcomposeLayout, שמאפשרת להכין מראש את התוכן ל-slotId נדרש. כך, המדידה הבאה תהיה מהירה יותר, כי כשננסה להכין מראש עם ה-slotId הנתון בפעם הבאה, לא יהיה צורך בהרכבה. (I42580, b/184940225)
- נוספה ידית לבחירת קליפים (Iff80d, b/183408447)
- הוסרו ממשקי API שלא נמצאים בשימוש שקשורים לתמיכה ב-LayoutInspector. (I2ac78)
תיקוני באגים
- הקומפוננטות LazyColumn/Row ישמרו עכשיו עד 2 פריטים שהיו גלויים בעבר כפעילים (לא יבוטלו), גם אם הם כבר לא גלויים בגלל גלילה. כך הרכיב יכול לעשות שימוש חוזר בתתי-הקומפוזיציות הפעילות כשצריך ליצור פריט חדש, וכך לשפר את ביצועי הגלילה. (Ie5555)
TextGeomerticTransformו-TextDecorationב-AnnotatedStringיוחלו כמו שהם. (I61900, b/184760917)
גרסה 1.0.0-beta06
5 במאי 2021
androidx.compose.ui:ui-*:1.0.0-beta06 מופץ. גרסה 1.0.0-beta06 מכילה את השמירות האלה.
שינויים ב-API
- פתרון קונפליקט באמצעות תנועת ניווט (I1145e)
- מעכשיו תמונות עם הפנים של
@ComposeCompilerApi@RequiresOptIn(Iab690) - נוספו ממשקי API של נגישות CollectionInfo ו-CollectionItemInfo שמאפשרים לסמן אוסף ופריטים בו לשירותי נגישות (Id54ef, b/180479017)
- נוספה האפשרות
SemanticsActions.ScrollToIndexלגלילה ברשימה עם פריטים ממוספרים לפריט עם מספר מסוים, וSemanticsProperties.IndexForKeyלקבלת המספר של פריט ברשימה עם פריטים ממוספרים. שתי הפעולות מיושמות על ידי LazyList.- נוספו הפונקציות
SemanticsNodeInteraction.performScrollToIndexשגורמת לגלילה ברשימה עד לאינדקס שצוין, ו-SemanticsNodeInteraction.performScrollToKeyשגורמת לגלילה ברשימה עד לפריט עם המפתח שצוין. (I4fe63, b/178483889, b/161584524)
- נוספו הפונקציות
- נוסף ownerViewId ל-GraphicLayerInfo (I19f62)
- נוספו עומסים יתרים (overloads) של Font() כדי לטעון גופנים מנכסים, מקובץ ומ-FileDescriptor (I5d382)
- נוסף API לנגישות
errorשמאפשר לסמן צומת שמכיל קלט לא תקין (I12997, b/180584804, b/182142737) - הוספנו
Font()עומסים כדי לטעון גופנים מנכסים, מקובץ ומ-FileDescriptor (I43007) - תמיכה בשמירה של AnnotatedString ב-
TextFieldValue.Saver. נוספו פונקציות כלי השירותaddTtsAnnotationו-withAnnotation אלAnnotatedString.Builder(I8cbdc, b/178446304) - נוספה פונקציית constructor של TextUnit
TextUnit(value: Float, type: TextUnitType)(I7ecce, b/178446304)
גרסה 1.0.0-beta05
21 באפריל 2021
androidx.compose.ui:ui-*:1.0.0-beta05 מופץ. גרסה 1.0.0-beta05 מכילה את השמירות האלה.
שינויים ב-API
- נוספו התכונות הניסיוניות
FocusManager.moveFocus(In)ו-FocusManager.moveFocus(Out)(Ic5534, b/183746743) - נוסף API ניסיוני של
performTextInputSelection(I2dcbb, b/178510628) - הממשק של
InputEventCallbackהוצא משימוש. אי אפשר היה להשתמש בממשק באף API ציבורי, ולא היה בו שימוש בקוד. (I34a02, b/184003208) - הפונקציה
TextLayoutResult/createTextLayoutResultהוצאה משימוש. זו פונקציה ציבורית שלא נמצאת בשימוש, שנוספה לצורך בדיקה. הפונקציה לא מבצעת פעולה שימושית בממשקי API של Compose text. הפונקציה הזו הוצאה משימוש ותוסר בהמשך. (I80413)
תיקוני באגים
- תוקנו פעולות הגלילה של הנגישות
ACTION_SCROLL_FORWARD,ACTION_SCROLL_BACKWARD,accessibilityActionScrollLeft,accessibilityActionScrollUp,accessibilityActionScrollRightו-accessibilityActionScrollDown. במקום לגלול עד סוף האזור שאפשר לגלול בו, המערכת תגלול עכשיו מסך אחד בכיוון שצוין. (Ieccb0) - קבצי AndroidManifest מ-ui-test-manifest ומ-ui-tooling-data תואמים עכשיו ל-Android 12 (I6f9de, b/184718994)
גרסה 1.0.0-beta04
7 באפריל 2021
androidx.compose.ui:ui-*:1.0.0-beta04 מופץ. גרסה 1.0.0-beta04 מכילה את השמירות האלה.
שינויים ב-API
- שינוי השם של
hideSoftwareKeyboardו-showSoftwareKeyboardב-SoftwareKeyboardControllerל-hide()ו-show()בהתאמה.- הוספת ממשק מלא של CompositionLocal ל-LocalSoftwareKeyboardController, שמאפשר להגדיר אותו (שימושי במיוחד בבדיקות) (I579a6)
- נוסף ממשק API לנגישות של LiveRegion. אם הצומת מסומן כאזור פעיל, שירותי הנגישות יודיעו למשתמש באופן אוטומטי על השינויים בו (Idcf6f, b/172590946)
- הוצג TextOverflow.Visible. (Ic8f89)
תיקוני באגים
- תוקנה הבעיה שבה פריטים מסוג
LazyColumn/LazyRowשהיו בקצוות מוקמו באופן שגוי אחרי העברה מהירה (Ie4d13, b/183877420) -
AndroidViewBindingמסיר עכשיו באופן תקין שברים שהורחבו באמצעותFragmentContainerViewכשמסירים אתAndroidViewBindingמההיררכיה של יצירת ההודעה. (Ib0248, b/179915946) -
AndroidViewBindingמקונן עכשיו בצורה נכונה פרגמנטים שהורחבו באמצעותFragmentContainerViewכש-ComposeViewנמצא בתוךFragment, וכך נפתרו בעיות בשמירה ובשחזור של מצב הפרגמנטים האלה. (I70eb0, b/179915946) - השימוש ב-Compose ViewBinding תלוי עכשיו ב-Fragment
1.3.2, ועכשיו מוצגים באופן עקבי פרגמנטים שהורחבו באמצעותFragmentContainerViewאחרי שינויים בהגדרות. (I0743d, b/179915946)
גרסה 1.0.0-beta03
24 במרץ 2021
androidx.compose.ui:ui-*:1.0.0-beta03 מופץ. גרסה 1.0.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- בדיקה נדחית של יחסי תלות ב-ViewTree של ComposeView (I8dbbf, b/182466548)
- נוספו פרמטרים אופציונליים
startX/endXו-startY/endYלפונקציותswipeUp/swipeDown/swipeLeft/swipeRightב-GestureScope. (I49e2d, b/182063305)
גרסה 1.0.0-beta02
10 במרץ 2021
androidx.compose.ui:ui-*:1.0.0-beta02 מופץ. גרסה 1.0.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף ממשק API חדש של
LocalSoftwareKeyboardControllercomposition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I5951e, b/168778053) - נוסף ממשק API חדש של
LocalSoftwareKeyboardControllercomposition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I84472, b/168778053) - הוסר
SemanticsMatcherהבא:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)hasBottomPosition(bottom, tolerance)(If16bd)
- סימנתי את הפריטים הבאים
SemanticsMatchersבתור @ExperimentalTestApi:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)-
hasBottomPosition(bottom, tolerance)(Ia600c)
- הוספנו את
SemanticsMatcherהבאים:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)hasBottomPosition(bottom, tolerance)(I2f502)
תיקוני באגים
- החלת הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, b/174531520)
-
androidx.compose.ui:uiכבר לא מסתמכת על AppCompat או על Fragment. אם אתם משתמשים ב-ComposeView באפליקציה, ואתם משתמשים ב-Fragment או ב-AppCompat, ודאו שאתם משתמשים ב-AppCompat 1.3+ או ב-Fragment 1.3+ – הגרסאות האלה נדרשות כדי להגדיר בצורה נכונה את הבעלים של מחזור החיים והמצב השמור שנדרשים ל-ComposeView. (I1d6fa, b/161814404) - תוקן באג שגורם ל-
rememberSaveable { mutableStateOf(0) }לא לפעול כשמשתמשים בו בתוך יעד של navigation-compose. (I1312b, b/180042685, b/180701630) - נוסף ממשק API חדש של
LocalSoftwareKeyboardControllercomposition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I658b6, b/168778053) - תוקנה שגיאת NoSuchElementException נדירה ב-
ComposeRootRegistry'stearDownRegistry()(Iddce1)
גרסה 1.0.0-beta01
24 בפברואר 2021
androidx.compose.ui:ui-*:1.0.0-beta01 מופץ. גרסה 1.0.0-beta01 מכילה את השמירות האלה.
זו הגרסה הראשונה של Compose 1.0.0 Beta.
שינויים ב-API
- נוספה קראה חוזרת (callback) מסוג onStart אל
detectDragGestures(I67269, b/179995594) - השימוש במאפייני שינוי גודל לערכים פנימיים הוא כבר לא ניסיוני. (I15744)
- השם של MeasureBlocks שונה ל-MeasurePolicy, והוא הפך לממשק מהנה. ממשקי Layout API עודכנו או פושטו כדי להשתמש ב-MeasurePolicy. (Icab48, b/167662468, b/156751158)
-
InteractionStateהוחלף ב-[Mutable]InteractionSource- ממשקי המשתמש אחראים לפליטה ולאיסוף של אירועי אינטראקציה.
- במקום להעביר את
interactionState = remember { InteractionState() }לרכיבים כמוButtonו-Modifier.clickable(), צריך להשתמש ב-interactionSource = remember { MutableInteractionSource() }. - במקום:
Interaction.Pressed in interactionStateצריך להשתמש בפונקציות ההרחבה ב-InteractionSource, כמו InteractionSource.collectIsPressedAsState(). - בתרחישי שימוש מורכבים, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם האינטראקציות. מידע נוסף זמין במסמכי התיעוד ובדוגמאות של InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- הוספת הממשק AccessibilityMananger ו-LocalAccessibilityMananger ב-CompositionLocals (I53520)
- הוסרו שיטות LayoutCoordinates שהוצאו משימוש. במקום המאפיין משתמשים בפונקציה למיקום בפריט האב ולגבולות בפריט האב (I580ed, b/169874631, b/175142755)
- השמות החלופיים הוחלפו בסוגים הבסיסיים:
-
ColorStopנקרא עכשיוPair<Float, Color> -
SpanStyleRangeהוא עכשיו `AnnotatedString.Range -
ParagraphStyleRangeנקרא עכשיוAnnotatedString.Range<ParagraphStyle> -
StringAnnotationנקרא עכשיוAnnotatedString.Range<String> - (I8dd1a)
-
- נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. (I8817f, b/177662148)
- הקומפוננטה Placeable חושפת עכשיו את המאפיין measuredSize, שמייצג את הגודל שהפריסה של רכיב הצאצא מדדה בפועל. יכול להיות שהגודל הזה לא יתאים למגבלות המדידה. (Ib2729, b/172560206, b/172338608)
- הוספת משנה selectionGroup שמאפשר לסמן אוסף של רכיבי Tabs או RadioButtons למטרות נגישות (Ie5c29)
השדה
defaultFactoryעבורcompositionLocalOfועבורstaticCompositionLocalOfהוא עכשיו חובה במקום אופציונלי.השינוי הזה מסיר שגיאת סוג פוטנציאלית עבור סוגים שאי אפשר להגדיר כ-nullable, שלא סופקה להם ברירת מחדל של factory. בעבר, הפעולה הזו הייתה מספקת הפניה לערך null עבור סוג שלא ניתן להקצאה ל-null.
בסוגים שניתן להגדיר להם ערך null, כדאי לציין את
{ null }כברירת המחדל של המפעל.אנחנו לא ממליצים להשתמש ב-locals עם סוגים שלא יכולים להיות null, אלא אם אפשר לספק ברירת מחדל הגיונית. אם אין ברירת מחדל הגיונית, פונקציית ה-lambda
defaultFactoryצריכה להחזיר חריגה. עם זאת, אם תופעל חריגה, הצרכנים של המשתנה המקומי יסתמכו באופן מרומז על כך שהוא יסופק, אבל מערכת הטיפוס לא תאכוף את זה. (Ifbd2a)הוסרו methods שהוצאו משימוש ממודולים של ממשק משתמש (I646f6)
השם של משני המידות השתנה. השמות של modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של Modifier.preferredWidth/preferredHeight/preferredSize שונו ל-width/height/size. (I5b414)
Modifier.tapGestureFilterהוסר. במקום זאת, אתם צריכים להשתמש ב-Modifier.pointerInput { detectTapGestures(...) }. (I266ed, b/175294473)הסרה של צריכה חלקית ממערכת קלט ההצבעה. הדרך המומלצת לתאם צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)
ההדרכה הועברה לחבילת Foundation. ה-VelocityTracker הועבר מ-ui.gesture אל ui.input.pointer. (Iff4a8, b/175294473)
imageResource ו-vectorResource הן עכשיו פונקציות הרחבה ב-ImageBitmap וב-ImageVector בהתאמה.
load{Image,Vector,Font}Resourceפונקציות נמחקו. (I89130)הוסרו AnimationClockObservable ומחלקות משנה. התכונה AnimatedFloat הוסרה. (Icde52, b/177457083)
השם של Providers השתנה ל-CompositionLocalProvider
- הקונסטרוקטור Composition לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
- הפונקציה currentCompositeKeyHash הפכה למאפיין הניתן להגדרה ברמה העליונה, במקום להיות פונקציה הניתנת להגדרה ברמה העליונה.
- המחלקות CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
- הפונקציה ComposableLambda הפכה לממשק במקום למחלקה קונקרטית, וכבר לא כוללת פרמטרים של סוג.
- הפונקציה ComposableLambdaN הפכה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הפונקציה snapshotFlow הועברה למרחב השמות androidx.compose.runtime
- שיטת המיזוג של SnapshotMutationPolicy כבר לא ניסיונית
- הפונקציה clearRoots ברמה העליונה @TestOnly הוסרה. היא כבר לא נחוצה.
- הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. הם כבר לא נחוצים.
- הפונקציה Composer.collectKeySourceInformation הוסרה. היא כבר לא נחוצה.
- השיטות isJoinedKey, joinedKeyLeft ו-joinedKeyRight הוסרו. הם כבר לא נחוצים.
- ממשקי API שונים ברמה העליונה הועברו ואורגנו מחדש בקבצים שונים. בגלל הסמנטיקה של מחלקת הקבצים ב-Kotlin, הפעולה הזו תשבור את התאימות הבינארית אבל לא את תאימות המקור, ולכן לא אמורה להיות בעיה עבור רוב המשתמשים.
- (I99b7d, b/177245490)
הסרנו את
ComponentActivity.setContent()מ-compose:ui. משתמשים בזה מ-androidx.activity:activity-compose:1.3.0-alpha01. הוסרוviewModel()ו-LocalViewModelStoreOwnerמ-compose:ui. שימוש באלה מ-androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01(I6f36b)בוצע שינוי ב-Modifier.scrollable. עכשיו נעשה שימוש בממשק Scrollable במקום במחלקה ScrollableController (I4f5a5, b/174485541, b/175294473)
הוסרה התמיכה ב-CustomEvents מ-PointerInputModifier (I02707, b/175294473)
SnapshotStateObserver כבר לא ניסיוני (Id2e6a)
נמחקו כמה ממשקי API שהוצאו משימוש בעבר (Ice5da, b/178633932)
המסננים longPressGestureFilter ו-doubleClickGestureFilter הוסרו. צריך להשתמש ב-Modifier.pointerInput עם פונקציות עזר, למשל detectTapGestures (I2fedf, b/175294473)
הוסר ה-API String.format בוצע רפקטורינג לשימושים שונים בשיטות toString כדי לא להשתמש ב-String.format באופן פנימי. (Id1290)
הוסרו טענות dp (I798d2)
הוסר androidx.compose.runtime:runtime-dispatch (I55feb)
פעולות בטקסט בודקות עכשיו את המיקוד באופן אוטומטי (I13777, b/179648629)
הוסרה
runBlockingWithManualClock(I15cdc, b/179664814)מיקום הגלילה ב-Modifier.verticalScroll()/horizontalScroll() מיוצג עכשיו באמצעות Ints (I81298)
השם של FlingConfig שונה ל-FlingBehavior, ועכשיו אפשר להתאים אישית את האנימציה של ההשהיה במקום להשתמש ב-Decays מוגדרים מראש. (I02b86, b/175294473)
נוספה פונקציית עזר שיכולה לעזור להגדיר את אותה פעולה לכל הקריאות החוזרות של ImeAction (I63447, b/179226323)
הוסר קריאה חוזרת (callback) של SoftwareKeyboardController מכל שדות הטקסט, והיא תוחלף בקרוב ב-API חדש. (Iae869, b/168778053)
השימוש ב-FontSpan וב-FontWeigthStyleSpan הופסק והם הוסרו. (Ie5b56, b/177423444)
ביצענו את השינויים הבאים ב-Material API:
- הוספנו את הפרמטר contentPadding לרכיב Top/BottomAppBar כדי לאפשר התאמה אישית של הריווח שמוגדר כברירת מחדל.
- הפרמטרים ב-BackdropScaffold סודרו מחדש כך שהפרמטרים הנדרשים יופיעו לפני הפרמטרים האופציונליים, בהתאם להנחיות ה-API.
- הפרמטר
iconב-BottomNavigationItem הועבר כך שהוא מופיע אחריselectedו-onClick. - השם של הפרמטר
alwaysShowLabelsב-BottomNavigationItem השתנה ל-alwaysShowLabel. - השם של הפרמטרים
bodyContentבכמה רכיבים השתנה ל-content. - הפרמטרים ב-
ButtonDefaults.buttonColors()סודרו מחדש. חשוב לשים לב: מכיוון שסוג הפרמטרים לא השתנה, לא תהיה שגיאה בקוד. עם זאת, כדי שהקוד יפעל כמו קודם, צריך לוודא שאתם משתמשים בפרמטרים עם שמות או לעדכן את הסדר באופן ידני. - הפרמטר
secondaryVariantנוסף אלdarkColors(). הצבע הזה בדרך כלל זהה לצבעsecondaryבעיצוב הכהה, אבל אנחנו מוסיפים אותו כדי לשמור על עקביות ולאפשר התאמה אישית נוספת. - הוסרו ElevationDefaults ו-animateElevation() מממשק ה-API הציבורי כי לא היה בהם שימוש נפוץ והם לא היו שימושיים.
- השם של
onValueChangeEndב-Sliderשונה ל-onValueChangeFinishedוהוגדר כ-nullable. - כדי לשמור על עקביות, השם של הפרמטר
textב-Snackbarשונה ל-content. - נוסף הפרמטר
contentPaddingל-DropdownMenuItemכדי לאפשר התאמה אישית של שולי ברירת המחדל, והוגדר ש-contentיהיה תוסף ל-RowScope. - השם של
ModalDrawerLayoutשונה ל-ModalDrawer. - השם של
BottomDrawerLayoutשונה ל-BottomDrawer. - (I1cc66)
תיקוני באגים
- הוספנו API לשימוש במשאבי AnimatedVectorDrawable ב-Compose. משתמשים ב-animatedVectorResource כדי לטעון
<animated-vector>XML כ-AnimatedImageVector ולהנפיש אותו באמצעות painterFor (I8ea91) - נוסף ממשק API חדש של LocalSoftwareKeyboardController composition local כדי להחליף את הממשק הקודם של SoftwareKeyboardController ב-TextField. (I658b6, b/168778053)
גרסה 1.0.0-alpha12
10 בפברואר 2021
androidx.compose.ui:ui-*:1.0.0-alpha12 מופץ. גרסה 1.0.0-alpha12 מכילה את השמירות האלה.
שינויים ב-API
- התמיכה ב-ViewGroups הוסרה מ-UiApplier. הפונקציות הניתנות להרכבה emitView שהוצאו משימוש הוסרו. (Ifb214)
- הפונקציה Modifier.pointerInput מחייבת עכשיו שימוש במפתחות remember כדי לציין מתי קורוטינת הזיהוי של קלט מצביע צריכה להתחיל מחדש עבור תלות חדשות. (I849cd)
- השם של CompositionReference שונה ל-CompositionContext (I53fcb)
- השם של Bounds השתנה ל-DpRect (I4b32a)
- עדכון בנושא בדיקות: הפונקציה hasText() תבדוק את הטקסטים של הקלט, התווית, ההצעה או ה-placeholder בשדה הטקסט (Iab803)
- הפונקציה הניתנת להרכבה viewModel() והרכיב LocalViewModelStoreOwner הועברו אל androidx.lifecycle.viewmodel.compose. כדי להשתמש בה, צריך להוסיף תלות נפרדת androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01. (I7a374)
- אפשרות להגדיר פעולה שניתן להגדיר כ-nullable ב-AccessibilityAction, שינוי של actionLabel ב-AccessibilityAction וב-CustomAccessibilityAction מ-CharSequence ל-String (I0dc82)
- כדי להתאים טוב יותר את מוסכמות השמות ל-ImageBitmap ול-ImageVector, השם של ImagePainter שונה ל-BitmapPainter כדי ליצור הקבלה ל-VectorPainter. (Iba381, b/174565889)
- ממשקי API משופרים לבדיקת מחרוזת משנה, עם מחרוזת משנה כארגומנט (Icbe78)
- נוסף
Modifier.focusOrder()שמקבל FocusRequester בלי לציין סדר מיקוד מותאם אישית או lambda. המאפיין הזה שימושי אם רוצים לציין רק הפניה ולא סדר מיקוד מותאם אישית לרכיב שאפשר להרכיב (I4f52a, b/179180978) - הפונקציה ComponentActivity.setContent הועברה אל androidx.activity.compose.setContent במודול androidx.activity:activity-compose. (Icf416)
- הוסרו ה-methods של פירוק והעתקה (copy()) מכמה מחלקות שבהן נעשה בהן שימוש לעיתים רחוקות. (I26702, b/178659281)
- העברנו את החלון הקופץ כך שיהיה ספציפי לפלטפורמה. השם של AndroidPopupProperties שונה ל-PopupProperties, והערך
isFocusableהועבר לפרמטרfocusableב-PopupProperties(Ieeea5) - העברנו את Dialog כך שיהיה ספציפי לפלטפורמה. השם AndroidDialogProperties שונה ל-DialogProperties. (I4ef69, b/179138130)
- הפכנו את LayoutNode ל-internal (I8a7b1, b/175103944)
- המאפיין Constraints.enforce הוחלף במאפיין Constraints.constrain. (I8b8ea)
- הפונקציה loadFontResource הוצאה משימוש. צריך להשתמש ב-fontResource במקום זאת. הפונקציות imageResource, loadImageResource, vectorResource ו-loadVectorResource הוצאו משימוש. במקום זאת, צריך להשתמש ב-painterResource. (I6b809)
- מסיבות שקשורות לביצועים, הסמנטיקה של ScrollAxisRange מקבלת עכשיו ביטויי למדה שמחזירים ערכי Float במקום ערכי Float ישירים. (If4a35, b/178657186)
- נוספה סמנטיקה של EditableText כדי לסמן טקסט קלט שניתן לעריכה בשדה הטקסט לצורך נגישות, ונוספו שיטות בדיקה תואמות כדי לבדוק את הסמנטיקה (I8e07a)
- הפכנו את OwnerLayer/OwnerScope/OwnerSnapshotObserver ל-internal (I4ffaf, b/175103944)
- הפונקציה toIntPx() שונתה ל-roundToPx(). (I9b7e4, b/173502290)
- השם IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
- Snapshot API עודכן כדי להיות עקבי יותר עם הנחיות ה-API, וגם כדי להסתיר מחלקות הטמעה פנימיות מ-API ציבורי. (Id9e32)
- נוספו פעולות סמנטיות של הרחבה וכיווץ. נוספו expand ו-halfExpand ב-ModalBottomSheetState (Ib5064)
- המאפיין Modifier.dragGestureFilter יצא משימוש. במקום זאת, אתם צריכים להשתמש ב-
Modifier.pointerInput { detectDragGestures (...)}. אפשרות אחרת היא להשתמש ב-Modifier.draggable לגרירות בציר אחד (I0ba93, b/175294473) - שונה השם של Ambients כדי להתאים לשינוי השם של Ambient -> CompositionLocal. בעבר, השם של Ambients היה AmbientFoo, ועכשיו השם של CompositionLocals הוא LocalFoo. (I2d55d)
- המאפיין BaseTextField שיצא משימוש הוסר. במקום זאת, משתמשים ב-BasicTextField. (I71368)
- הבחירה הועברה לבסיס. (I7892b)
- בדומה להסרה הקודמת של
state { 0 }composable, ועכשיו אנחנו מעודדים שימוש ב-remember { mutableStateOf(0) }, אנחנו הולכים להסיר אתsavedInstanceState { 0 }composable. במקום זאת, כדאי להשתמש ב-rememberSaveable { mutableStateOf(0) }, והמערכת תשמור ותשחזר באופן אוטומטי אם אפשר לאחסן את הסוג שמשמש בתוך MutableState ב-Bundle. אם בעבר העברתם אובייקט מותאם אישית של שמירה, עכשיו אתם צריכים להשתמש בעומס יתר חדש של rememberSaveable עם פרמטרstateSaver. השימוש ייראה כך:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26, b/177338004) - נוספה סמנטיקה של סיסמאות לנגישות (I231ce)
- נוסף ProgressBarRangeInfo.Indeterminate כדי לסמן סרגלי התקדמות לא מוגדרים לנגישות (I6fe05)
- הכלים
emptyContent()ו-(@Composable () -> Unit).orEmpty()הוצאו משימוש כי הם כבר לא משפיעים לטובה על הביצועים או על הערך (I0484d) -
snapshotFlowו-withMutableSnapshotכבר לא ניסיוניים (I6a45f) - עכשיו אפשר לסגור את כלי ההלחנה מחדש. הקומפוזיציה של רכיבים סגורים תמשיך עד שקורוטינות הצאצא של הקומפוזיציה יושלמו. השם של הפונקציה Recomposer.shutDown שונה ל-cancel כדי ליצור ניגוד לפונקציה close. (Ib6d76)
- השם של UiSavedStateRegistry שונה ל-SaveableStateRegistry, השם של AmbientUiSavedStateRegistry שונה ל-AmbientSaveableStateRegistry ושניהם הועברו לחבילה androidx.compose.runtime.saveable. (I30224)
- הארטיפקט androidx:compose:runtime:runtime-saved-instance-state שונה ל-androidx:compose:runtime:runtime-saveable (I6dcac)
- הרבה ממשקי API שהוצאו משימוש לפני זמן רב בחבילת ui נמחקו. (I2f2dc)
- הוצאנו משימוש את פריט המידע שנוצר בתהליך פיתוח (Artifact) compose:runtime-dispatch. המחלקות MonotonicFrameClock נמצאת עכשיו ב-compose:runtime והמחלקות AndroidUiDispatcher נמצאת ב-compose:ui. (Ib5c36)
- מחלקות Outline.* כבר לא נחשבות למחלקות נתונים (I4879e, b/178001427)
- הסרת את
view.captureToImage()בלי להחליף אותו. (I7fcd2) - הוספנו את ColorMatrix API שמשמש לשינוי ערכי ה-RGB של תוכן המקור. שינינו את ColorFilter API כך שיהיה ממשק ויתאים להטמעה של PathEffect. (Ica1e8)
- הוספת הפרמטר layoutDirection ל-createOutline של Shape. כך אפשר ליצור צורות שמודעות לכיוון הפריסה. (I57c20, b/152756983)
- השימוש ב-onImeActionPerformed יצא משימוש. צריך להשתמש במקום זאת ב-KeyboardActions (If0bbd, b/179071523)
- נוסף רכיב של הקשר לקורוטינה
InfiniteAnimationPolicyשיופעל באנימציות אינסופיות. כברירת מחדל, לא מותקנת מדיניות, אלא אם מריצים בדיקות עםComposeTestRule. (I50ec4, b/151940543) - המאפיין canDrag הוסר מה-Modifier.scrollable. (Id66e7, b/175294473)
- שינינו את השם של LayoutCoordinates.parentCoordinates ל-LayoutCoordinates.parentLayoutCoordinates כדי לאפשר שימוש במאפיין parentCoordinates חדש. המאפיין parentCoordinates כולל עכשיו את LayoutCoordintes של משנה ההורה. כך יהיה אפשר להשתמש ב-onSizeChanged() וב-onGloballyPositioned() בצורה מלאה יותר (Idfbfd, b/177926591)
- המסננים tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ו-pressIndicaitonGestureFilter הוצאו משימוש. במקום זאת, אפשר להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה detectTapGestures. (I6baf9, b/175294473)
- הוסרה הפונקציה unregisterProvider של SaveableStateRegistry. במקום זאת, registerProvider() מחזירה עכשיו אובייקט SaveableStateRegistry.Entry שבו אפשר להשתמש כדי לבטל את הרישום (Ic4274, b/178583739)
- השם של rememberSavedInstanceState() שונה ל-rememberSaveable() והוא הועבר לחבילה androidx.compose.runtime.saveable. (I1366e, b/177338004)
- הוסרו CoreText ו-CoreTextField מ-API ציבורי
- הוסר עומס יתר של SelectionContainer שהוצא משימוש
- (I99c19)
- בדיקות שבהן נעשה שימוש ב-Compose בהיררכיות שנוספו/הוסרו ישירות ל-WindowManager יציבות יותר עכשיו. (Ie81ed, b/175765614)
- הוסר Recomposer.current(). [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. הקומפוזיציה מחדש והאנימציה מבוססת-withFrameNanos מושהות בזמן שמחזור החיים של המארח מושהה. (I38e11)
- Recomposer.runningRecomposers כולל עכשיו StateFlow גלובלי של RecomposerInfo לקריאה בלבד, כדי לעקוב אחרי מצב הקומפוזיציה בתהליך. מומלץ להשתמש ב-API הזה במקום ב-Recomposer.current(), שהוצא משימוש. (If8ebe)
- הפונקציות Saver, listSaver(), mapSaver(), autoSaver הועברו מ-androidx.compose.runtime.savedinstancestate אל androidx.compose.runtime.saveable (I77fe6)
- EditCommands מקבל AnnotatedString. עם זאת, זהו שינוי שמתבצע רק ב-API, ועדיין לא הוטמעה האפשרות לעריכת טקסט עם כמה סגנונות. (I4c3ea)
- הוסרו הנתונים 'זמן פעולה' ו'משך'. (Ib9bf4, b/177420019)
- הפונקציות CompositionData.asTree() וממשקי API קשורים הועברו למודול ui-tooling-data נפרד וסומנו כניסיוניים (Ic95b8)
- השמות של הפרמטרים ב-RounderCornerShape, CutCornerShape ו-CornerBasedShape שונו מ-left/right (ימין/שמאל) ל-start/end (התחלה/סיום) כדי לתמוך בשיקוף האוטומטי של הצורה בכיוון מימין לשמאל. הוספנו את הצורות AbsoluteRounderCornerShape ו-AbsoluteCutCornerShape למקרים שבהם לא רוצים שיקוף אוטומטי. (I61040, b/152756983)
ה-API שאליו מכוון פלאגין הקומפיילר של Compose עבר רפקטורינג כדי להשתמש בממשק במקום במחלקה קונקרטית. בנוסף, הממשק לא משתמש יותר בפרמטר מסוג.
זהו שינוי פנימי שלא אמור להשפיע על התאימות של קוד המקור, אבל הוא שינוי בינארי שגורם לשגיאה. (I3b922, b/169406779)
הסרה של הפונקציה StringBuilder.deleteAt שהוגדרה בטעות כציבורית (Id6ed9)
תיקוני באגים
- רכיבי ComposeView שמוצבים בהיררכיות של תצוגות שהן צאצאים של קומפוזיציה אחרת, מארחים עכשיו קומפוזיציות צאצא של האבות הקדמונים שלהם (I92883)
- בוצע עדכון ב-API של compose imageFromResource כדי לעשות שימוש חוזר במטמון של משאב drawable בעת טעינת אובייקטים של ImageBitmap. (If3627, b/178751994)
גרסה 1.0.0-alpha11
28 בינואר 2021
androidx.compose.ui:ui-*:1.0.0-alpha11 מופץ. גרסה 1.0.0-alpha11 מכילה את השמירות האלה.
שינויים ב-API
- הקומפוזיציה WithConstraints עברה שינוי משמעותי, שונה לשם BoxWithConstraints והועברה אל foundation.layout. (I9420b, b/173387208)
- המאפיין Key.DPadUp הוצא משימוש. במקום זאת, צריך להשתמש ב-Key.DirectionUp. (Iab335, b/177954892)
- ממשק הבעלים יהיה מעכשיו פנימי. (If8e35)
- הוספנו את API FocusManager.moveFocus() כדי להעביר את המיקוד באופן פרוגרמטי. (I045cb, b/177681839)
- השינוי PopupPositionProvider משתמש בקואורדינטות יחסיות לחלון, ולא בקואורדינטות גלובליות. השם של parentGlobalBounds שונה ל-anchorBounds, והשם של windowGlobalBounds שונה ל-windowSize: IntSize (I2994a)
- הערכים של משך הזמן וזמן הפעולה יוחלפו בערכים של אלפיות שנייה ארוכות, ובשלב הזה מוסרת התלות של קלט מצביע במחלקות האלה. (Ia33b2, b/175142755, b/177420019)
- התווסף AmbientSavedStateRegistryOwner באופן דומה ל-AmbientLifecycleOwner ו-AmbientViewModelStoreOwner שכבר קיימים (I9a3e8, b/176756365)
- ממשק ה-API של גרפיקה וקטורית עודכן כדי לתמוך בניתוח של גוון שהוחל על השורש של גרפיקה וקטורית. (Id9d53, b/177210509)
- נוסף toolType ל-PointerInputChange כדי להבדיל בין מכשירים (Iac787, b/175142755)
- השם של AmbientWindowManager שונה ל-AmbientWindowInfo (I2686a, b/177084714, b/177084983)
- הוצאנו משימוש שיטות של קואורדינטות גלובליות ויצרנו שיטות חדשות של קואורדינטות מבוססות חלון. (Iee284)
- נוסף Modifier.toolingGraphicsLayer שמוסיף משנה של שכבת גרפיקה כשמפעילים בדיקה. (I315df)
- הפונקציה FocusRequester.createRefs מסומנת עכשיו כניסיונית כי היא עשויה להשתנות. (I2d898, b/177000821)
- השם של SemanticsPropertyReceiver.hidden שונה ל-invisibleToUser והוא סומן כ-@ExperimentalComposeUiApi. השם של AccessibilityRangeInfo שונה ל-ProgressBarRangeInfo. השם של stateDescriptionRange שונה ל-progressBarRangeInfo. השם של AccessibilityScrollState שונה ל-ScrollAxisRange. השם של horizontalAccessibilityScrollState שונה ל-horizontalScrollAxisRange. השם של verticalAccessibilityScrollState שונה ל-verticalScrollAxisRange. (Id3148)
- הוסר PointerInputData ובוצע שינוי ב-PointerInputChange כדי להעביר אליו את כל השדות של PointerInputData. הפכנו את PointerInputEvent ו-PointerInputEventData לפנימיים כי הם לא נמצאים בשימוש באף API ציבורי. (Ifff97, b/175142755)
- בוצע עדכון של GraphicsLayerScope implement density כדי לתמוך בהמרות של dp לפיקסלים גולמיים. (Ied528, b/176819695)
- עדכנו את API של מטריצה כך שיפעל לפי סדר שורות ויספק קבועי אינדקס כדי לסייע בהמרות בין ייצוגים שונים של מטריצה, בהתאם ללוגיקת ההמרה של המסגרת בין SkMatrix ל-Matrix4 באופן פנימי. (I432e6)
- הוסרו שיטות ניסיוניות של monotonicFrameAnimationClockOf (Ib753f, b/170708374)
- מעבירים את String.fintPrecedingBreak ואת String.fingFollowingBreak אל InternalTextApi. (I657c4)
- androidx.compose.ui.util.isSurrogatePair הוסר מה-API הציבורי. (Ia9494)
- שינינו את השם של TransformedText.transformedText ל-TransformedText.text
- TransformedText כבר לא סיווג נתונים (Ie672a)
- המשתמש
data classהוסר מהכיתות הבאות:- InlineTextContent
- LocaleList (I605c7)
- הכיתות הבאות כבר לא מוגדרות ככיתות נתונים:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
- הפכנו את VisualTransformation לממשק פונקציונלי (I3bba4)
- נוסף סוג פרמטר של הפניה לפונקציה (I5e1bd)
- הוספת גבולות שעברו טרנספורמציה ל-InspectorNode (Ice42f)
תיקוני באגים
- הפונקציות onCommit, onDispose ו-onActive הוצאו משימוש לטובת ממשקי ה-API SideEffect ו-DisposableEffect (If760e)
שינויים בפונקציות של Font/FontFamily/Typeface
- נוספו פונקציות ליצירת אובייקטים שמתחילות באות גדולה
- הוצאנו משימוש פונקציות קודמות ליצירת אובייקטים עם אותיות קטנות בתחילת השם
- פונקציות חדשות של יצירת אובייקטים מחזירות את FontFamily במקום מחלקות משנה
- הסתרת constructors של מחלקות משנה, כך שאפשר ליצור אותן רק באמצעות פונקציות factory.
- שם הפונקציה Font.asFontFamily שונה ל-Font.toFontFamily (I42aa7)
הוספנו את
ComposeContentTestRule, שמרחיב אתComposeTestRuleומגדיר אתsetContent, שהוסר מ-ComposeTestRule. נוספה שיטת יצירהcreateEmptyComposeRule()שמחזירהComposeTestRuleולא מפעילה Activity בשבילכם. משתמשים באפשרות הזו כשרוצים להפעיל את הפעילות במהלך הבדיקה, למשל באמצעותActivityScenario.launch(I9d782, b/174472899)הפונקציה animateAsState נקראת עכשיו animateFooAsState, כאשר Foo הוא סוג המשתנה שמונפש. למשל: Float, Dp, Offset וכו' (Ie7e25)
נוסף פרמטר של תיאור תוכן לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)
צריך להסיר את displaySize כי מומלץ להימנע משימוש בו. בדרך כלל עדיף להשתמש בגודל של onRoot() או בגודל החלון לפחות. (I62db4)
הפונקציה OnSizeChanged דיווחה על גודל התוכן של הפריסה. הוא מדווח עכשיו על הגודל במיקום שלו בשרשרת של שינוי המאפיינים. (I36b78, b/177562900)
הוצאנו משימוש את ה-API emit() ואת כל העומסים העודפים שלו, ושינינו את השם שלו ל-ComposeNode. ממשקי ה-API זהים, רק השם שונה כדי להתאים למוסכמות מתן השמות של Compose (I4137b)
TextFieldValue מקבל AnnotatedString. עם זאת, זהו שינוי שמתבצע רק ב-API, ועדיין לא הוטמעה האפשרות לערוך טקסט עם כמה סגנונות.
- הוסר
initialמפרמטרים של בנאי EditingBuffer. (I326d5)
- הוסר
הפונקציות invalidate ו-compositionReference() הוצאו משימוש, ועכשיו משתמשים במקומן בפונקציות currentRecomposeScope ו-rememberCompositionReference בהתאמה. (I583a8)
המחלקות AnnotatedString השתנו כך שהן יורדות מהמחלקה kotlin.CharSequence. לכן, הפונקציות length ו-subSequence הן עכשיו פונקציות מופע, והפונקציות של התוסף הוסרו. (Iaf429)
הפונקציה RememberObserver מחליפה את CompositionLifecycleObserver, והפונקציה CompositionLifecycleObserver הוצאה משימוש.
RememberObserverהוא תחליף ל-CompositionLifecycleObserverעם סמנטיקה ששונתה ושיטות ששמן שונה. אפשר לעבור ל-API החדש באופן אוטומטי לאובייקטים שזוכרים רק פעם אחת, וזו גם ההמלצה שלנו. עם זאת, אם הפניה נשמרה יותר מפעם אחת בקומפוזיציה, הפונקציהonRememberedנקראת לכל הפניה, והפונקציהonEnterנקראת רק פעם אחת. הייתה קריאה לפונקציהonEnterכמה פעמים אם האובייקט היה בשימוש בקומפוזיציות משנה, כמוWithConstraintsו-Scaffold, ולכן אי אפשר היה להסתמך על קריאה יחידה לפונקציהonEnter, והיא הוסרה ב-RememberObserver.
RememberObserverמוסיף אתonAbandoned, שמופעל אם מופעRememberObserverמוחזר מהקריאה החוזרת שהועברה אלremember, אבל לא נשמר במצב הקומפוזיציה ולכן לא תתבצע קריאה אלonRemembered. זה יכול לקרות אם חריגה מסיימת את ההרכבה לפני שהיא מסתיימת, או אם ההרכבה נפסלת כי המצב שהיא יצרה עבורו הרכבה כבר לא עדכני או כבר לא נחוץ. אם המופע שלRememberObserverשמופיע אחרי ההמלצה שלמעלה לגבי הפניה היחידה עוקב אחרי משאב חיצוני, גםonForgottenוגםonAbandonedמציינים שהמשאב כבר לא נחוץ. אם האובייקט עוקב אחרי עבודה שהתחילה או משאבים שהוקצו ב-onRemembered, אפשר להתעלם מ-onAbandonedכי הוא לא יופעל אםonRememberedיופעל. (I02c36)הוצאה משימוש של פעולות אריתמטיות בין 2 או יותר TextUnit. הפונקציות TextUnit.Sp ו-TextUnit.Em הוצאו משימוש, ועדיף להשתמש בפונקציות ההרחבה כמו Int.sp ו-Int.em. (I48369)
משאבים בספריות שלא הוגדרו בהן משאבים ציבוריים באופן מפורש (למשל דרך public.xml) מוגדרים עכשיו כפרטיים כברירת מחדל. (Ia1dcc, b/170882230)
התכונות ScrollableColumn ו-ScrollableRow הוצאו משימוש. השימוש ב-ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn כשמדובר בתוכן גדול שניתן לגלול בו, כי באמצעות LazyColumn אפשר להלחין, למדוד ולצייר רק את הרכיבים הגלויים. כדי למנוע מהמשתמשים להשתמש בדרך הלא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו-ScrollableRow ולעודד שימוש ב-LazyColumn וב-LazyRow במקומם. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות של טעינה עצלה ולהשתמש ישירות במאפיינים כמו בדוגמה הבאה: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
factory method חדש
items(count: Int)להיקף של LazyColumn/LazyRow/LazyVerticalGrid. הפונקציותitems(items: List)ו-itemsIndexed(items: List)הן עכשיו פונקציות של תוספים, ולכן צריך לייבא אותן באופן ידני כשמשתמשים בהן. עומסי תוספים חדשים למערכים:items(items: Array)ו-itemsIndexed(Array)(I803fc, b/175562574)במקומו, צריך להשתמש ב-ImeAction.None במקום ב-ImeAction.NoAction
- במקום ImeAction.Unspecified (Ie1bcc), צריך להשתמש ב-ImeAction.Default
שימוש ב-TestCoroutineDispatcher בבדיקות (I532b6)
שם הפונקציה TextInputService.onStateUpdated שונה ל-updateState (Id4853)
הוצא משימוש מעבר שמבוסס על TransitionDefinition (I0ac57)
הערך TextUnitType.Inherit הוסר. במקומה צריך להשתמש ב-TextUnitType.Unspecified. (I9ff64)
גרסה 1.0.0-alpha10
13 בינואר 2021
androidx.compose.ui:ui-*:1.0.0-alpha10 מופץ. גרסה 1.0.0-alpha10 מכילה את השמירות האלה.
שינוי שעלול לגרום לכשלים
שינוי המבנה של ה-API הפנימי של הקומפיילר מאפשר לאגד שינויים בצמתים שנוצרו כתוצאה מקומפוזיציה לשלב 'החלת שינויים' בקומפוזיציה, אחרי שכל הפונקציות
@Composableהושלמו.זהו שינוי שעלול לשבור את ההתנהגות של הקוד, כי הצמתים לא זמינים יותר מממשקי API פנימיים וניסיוניים עד שהשינויים יחולו. בדרך כלל אפשר לעקוף את הבעיה הזו על ידי הוספת קוד עם תלויות כאלה ל-
SideEffectcomposable כדי לדחות את ההרצה של הקוד עד אחרי שהצמתים נוצרו ואותחלו. (I018da)
שינויים ב-API
- נוסף Modifier.focusOrder() שאפשר להשתמש בו כדי לציין סדר מעבר מותאם אישית בין רכיבים במצב פוקוס (I90cf5, b/175899543, b/170155556, b/170155429)
- הוסרה השימוש ב-focusObserver שהוצא משימוש. במקומו אפשר להשתמש ב-onFocusChanged או ב-onFocusEvent (I3ecb9, b/175156387)
- שינויים ב-EditOperations API
- השם של EditOperation שונה ל-EditCommand
- נוספה סיומת פקודה להטמעות קונקרטיות של EditOperation
- EditCommand's הם כבר לא מחלקות נתונים
- השם של הפונקציה EditOperation.process השתנה ל-applyTo
- שם המחלקה InputEventListener שונה ל-InputEventCallback
- (I0a366)
- הוסרו המאפיינים PxSquared, PxCubed ו-PxInverse שלא בשימוש. הפונקציה Size.center() שונתה למאפיין. (I973f7)
- מודול ui-test יוכל עכשיו להגדיר את היצירה של Recomposers לממשקי משתמש שנבדקים (Ibebd8)
- שינינו את Velocity כך שיכלול רכיבים ופעולות מתמטיות. (Ib0447)
- השם
@ExperimentalTestingשונה ל-@ExperimentalTestApiכדי לשמור על עקביות עם הערות דומות של API ניסיוני (Ia4502, b/171464963) - השם של Color.useOrElse() שונה ל-Color.takeOrElse() (Ifdcf5)
- הוסרו המחלקות DpInverse, DpSquared ו-DpCubed שלא בשימוש. (I4d62b)
- השם של המאפיין Constraints#satisfiedBy שונה ל-isSatisfiedBy. (I9cf5c)
- הוספת קריאה חוזרת כדי להודיע לבעלים כשמשתנים הגבולות של layoutnode. (I72fd1)
- נוספו isSpecified, isUnspecified ו-useOrElse למחלקות מוטבעות עם קבוע Unspecified. (I93f7b, b/174310811)
הרחבת ממשקי ה-API של [Abstract]ComposeView כדי לאפשר שימוש חוזר בתצוגות שמבוססות על Compose, השבתת הקומפוזיציה שלהן כדי ליצור אותה מחדש מאוחר יותר. הוספת ממשקי API להתקנה ולגילוי של Recomposers בהיקף חלון ושל CompositionReferences ליצירת קומפוזיציות צאצא.
מוסיפים ViewCompositionStrategy כדי להגדיר את אסטרטגיית הסילוק של [Abstract]ComposeViews; התנהגות ברירת המחדל היא סילוק כשחלון מנותק. (I860ab)
הוסר ה-API הציבורי Any.identityHashCode() (I025d7)
הסרנו את ה-API toStringAsFixed במקום להשתמש ישירות ב-String.format. (Iaba6b)
הוספת מתג ל-foundation Strings.kt (I4a5b7, b/172366489)
העברנו את nativeClass למודול ui והגדרנו אותו כפנימי. השימוש ב-nativeClass עודכן בהטמעות של equals כדי להשתמש ב-'is MyClass' במקום זאת. (I4f734)
הפונקציות Modifier.focus() ו-Modifier.focusRequester() הוצאו משימוש. במקום זאת, צריך להשתמש ב-Modifier.focusModifier() וב-Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
הוספנו את SelectionRegistrar.notifySelectableChange כדי להודיע ל-SelectionManager על עדכונים ב-Selectable. (I6ff30, b/173215242)
הוספנו את המאפיין Outline.bounds כדי לקבל את המלבן התוחם למימושים שונים של קווי מתאר. (I16e74, b/175093504)
הוצא משימוש TestUiDispatcher. במקום זאת, צריך להשתמש ב-Dispatchers.Main (Ic171f, b/175385255)
המחלקות ImeOptions ו-KeyboardOptions הן כבר לא מחלקות נתונים (I3c898, b/168684531)
שינויים ב-VisualTransformation API
- השם של OffsetMap השתנה ל-OffsetMapping
- השם של OffsetMapping.identityOffsetMap שונה ל-OffsetMapping.Identity
- הסיווג PasswordTransformation לא מוגדר יותר כסיווג נתונים
- העברנו את OffsetMapping לקובץ משלו
- (I0bdf3)
השם של Position שונה ל-DpOffset והפונקציה getDistance() הוסרה (Ib2dfd)
הפונקציה fun Dp.isFinite() שונתה ל-val Dp.isFinite (I50e00)
תיקוני באגים
- הכלי Recomposer חושף עכשיו את הסטטוס הנוכחי שלו באמצעות Flow, וכך מאפשר לעקוב אחרי הפעילות שלו ואחרי הפעילות של האפקטים המשויכים. (Ifb2b9)
- עכשיו אפשר לגשת ל-native keyEvent דרך keyEvent.nativeKeyEvent (I87c57, b/173086397)
- הפונקציה
animate()הוחלפה בפונקציהanimateAsState(), שמחזירהState<T>במקוםT. כך אפשר לשפר את הביצועים, כי אפשר לצמצם את היקף הביטול למקום שבו נקרא ערך המצב. (Ib179e) - מוסיפים את Semantics role API ומוסיפים Role כפרמטר ל-SemanticsModifier שאפשר ללחוץ עליו, לבחור אותו או להפעיל ולבטל אותו. שונה Modifier.progressSemantics כך שגם Slider יכול להשתמש בו. (I216cd)
- API חדש מבוסס-קורוטינות
Animatableשמבטיח הדרה הדדית בין האנימציות שלו.- New DecayAnimationSpec to support multi-dimensional decay animation
- (I820f2, b/168014930)
גרסה 1.0.0-alpha09
16 בדצמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha09 מופץ. גרסה 1.0.0-alpha09 מכילה את השמירות האלה.
שינויים ב-API
- המאפיין KeyEvent.Alt שהוצא משימוש הוסר עכשיו. במקומו, צריך להשתמש ב-KeyEvent.isAltPressed. (Idd695)
- המאפיינים Modifier.keyInputFilter ו-Modifier.previewKeyInputFilter הוצאו משימוש. במקומם צריך להשתמש במאפיינים Modifier.onKeyEvent ו-Modifier.onPreviewKeyEvent (Idbf1b, b/175156384).
- המאפיין Modifier.focusObserver הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.onFocusChanged או ב-Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
- לגבי השעיה של ממשקי API של קלט מצביע, בוצע שינוי בשם של HandlePointerInputScope ל-AwaitPointerEventScope ושל handlePointerInput() ל-awaitPointerEventScope(). (Idf0a1, b/175142755)
- ה-API של המילוי האוטומטי הוא עכשיו API ניסיוני ונדרשת הסכמה לשימוש בו (I0a1ec)
- הוספת הצהרות על פירוק מבנה כדי ליצור מופעים של FocuSRequester (I35d84, b/174817008)
- השם של accessibilityLabel השתנה ל-contentDescription. השם של accessibilityValue השתנה ל-stateDescription. (I250f2)
- הוסרו אירועים מותאמים אישית מ-API להשהיית קלט מצביע (Ia54d5, b/175142755)
- הוספנו כמה פונקציות חדשות ב-SelectionRegistrar ושינינו את השם של onPositionChange ל-notifyPositionChange. (Ifbaf7)
- עוד חברים ב-LayoutNode שסימנו כפנימיים (I443c6)
- התכונה LayoutInfo נוספה כדי לשמש כלי בדיקה (I9b190)
- AndroidOwner made internal (Ibcad0, b/170296980)
- הוסרה ההערה ExperimentalPointerInput (Ia7a24)
- נוספה מערכת גלילה מקוננת. מידע נוסף זמין במאמר בנושא Modifier.nestedScroll (I36e15, b/162408885)
- הפונקציה subcomposeInto(LayoutNode) הפכה לפנימית (Id724a)
ממשק
Applierהשתנה כדי לפשט את בניית העצים מלמטה למעלה במקום מלמעלה למטה.השם של ה-method
insert()השתנה ל-insertTopDown().נוספה שיטה חדשה,
insertBottomUp().הכלי להחלת מדיניות מוסיף צמתים לעץ שהוא עורך באמצעות
insertTopDown()אוinsertBottomUp(), בהתאם למה שנותן תוצאות טובות יותר.יעיל יותר לבנות חלק מהעצים, כמו
LayoutNodeו-View, מלמטה למעלה מאשר מלמעלה למטה. לפני השינוי הזה, היה צריך להשתמש במערך של תוספים כדי להטמיע בנייה מלמטה למעלה, והיה צריך להעתיק את המערך לכל כלי שנדרשה בו בנייה מלמטה למעלה כדי לשפר את הביצועים. בעקבות השינוי הזה,ApplieroverridesinsertBottomUp()כדי לבנות עץ מלמטה למעלה ו-insertTopDown()כדי לבנות את העץ מלמעלה למטה. (Icbdc2)נוספו המאפיינים dismissOnBackPress ו-dismissOnClickOutside ל-AndroidDialogProperties. המאפיינים האלה מאפשרים להגדיר מתי יופעל ה-lambda של onDismissRequest בתיבת הדו-שיח. (If5e17)
נוסף painterResource API לטעינה אטומה של אובייקטים של Painter מפורמטים של נכסי רסטר (כמו PNG) או מ-VectorDrawables. הצרכנים לא צריכים יותר לקבוע מראש את סוג הנכס, ויכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter לשימוש ב-Image composables או ב-painter modifiers. (I2c703, b/173818471)
נוספה הפונקציה Modifier.clearAndSetSemantics כדי לנקות את הסמנטיקה של צאצאים ולהגדיר סמנטיקה חדשה. (I277ca)
העברנו את ContentDrawScope למודול ui-graphics כדי שיהיה עם DrawScope. (Iee043, b/173832789)
הוספנו את PathEffect API לגרפיקה כדי לספק דוגמאות שונות לצורות עם קו מתאר. שימוש מיושן ב-NativePathEffect במקום במימוש expect/actual של PathEffect. (I5e976, b/171072166)
נוספו ממשקי IdlingResource ל-Compose, כגרסה נתמכת של Compose של משאבי ההמתנה של Espresso. אפשר לרשום אותם ולבטל את הרישום שלהם באמצעות ComposeTestRule (I433f3)
הוסרה (un)registration גלובלית של ComposeIdlingResource ו-(un)registration גלובלית של שעונים אל תוך ComposeIdlingResource (I32660)
תיקוני באגים
- פונקציות למדא במאפייני שינוי של היסט מחזירות עכשיו IntOffset ולא Float. (Ic9ee5, b/174137212, b/174146755)
הוסרו SlotTable, SlotReader ו-SlotWriter מה-API הציבורי. בעבר הם סומנו כ-InternalComposeAPI. עכשיו הם פנימיים למודול הכתיבה.
הוספנו את CompositionData ו-CompositionGroup כתחליף ל-API של ui-tooling, כדי לחלץ מידע על הקומפוזיציה. ממשקי ה-API האלה הם ציבוריים, אבל הם לא מיועדים לשימוש מחוץ ל-ui-tooling API, כי הם מספקים את המידע הגולמי ש-ui-tooling API מפרש (I31a9c)
בוצע רפקטורינג ב-ShaderBrush כדי ליצור באופן עצלני מופע של Shader כשמידע על גודל סביבת הציור זמין. השימוש ב-Brush مفيد להגדרת מעברי צבע שממלאים את כל גבולות הציור של קומפוזבל בזמן הקומפוזיציה, בלי שתצטרכו להטמיע הטמעות מותאמות אישית של DrawModifier.
הוצאנו משימוש ממשקי API של constructor של פונקציית שיפוע, ועברנו לשימוש בשיטות factory באובייקט Gradient. (I511fc, b/173066799)
הוצאה משימוש של LazyColumnFor, LazyRowFor, LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, צריך להשתמש ב-LazyColumn וב-LazyRow (I5b48c)
הוצא משימוש BuildCompat.isAtLeastR (Idb37e)
נוספה פונקציית factory בשם buildAnnotatedString כדי ליצור AnnotatedString. פונקציית ה-builder של annotatedString הוצאה משימוש. (Idfe0b)
הוסרו שיטות הרחבה ב-Float וב-Double להמרת ערכים לרדיאנים. הועברה להיות פונקציה פרטית בהטמעה PathParser, שהייתה המקום היחיד שבו נעשה בה שימוש (I25f52)
גרסה 1.0.0-alpha08
2 בדצמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha08 מופץ. גרסה 1.0.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- הוספת פעולה סמנטית Dismiss (ביטול) (I2b706)
- העברנו את ממשקי ה-API של DrawModifier מהחבילה androidx.compose.ui לחבילה androidx.compose.ui.draw. נוצר קובץ DrawModifierDeprecated.kt כדי לכלול כינויי טיפוסים (typealiases) ושיטות עזר שיעזרו במעבר מ-API שיצא משימוש ל-API הנוכחי. (Id6044, b/173834241)
- השם של Modifier.drawLayer שונה ל-Modifier.graphicsLayer. בנוסף, עודכנו מחלקות קשורות ל-GraphicsLayer בהתאם למשוב על ה-API. (I0bd29, b/173834241)
- נוספו שיטות חדשות placeable.placeWithLayer() ו-placeable.placeRelativeWithLayer() שמאפשרות לפריסות מותאמות אישית ולמשני פריסה למקם רכיב צאצא עם הצגת שכבת גרפיקה לציור שלו. היתרון הוא שאפשר קודם לבצע אופטימיזציה של הציורים מחדש, כך שכאשר צריך להזיז רכיב צאצא לא צריך לצייר מחדש את התוכן שלו. בנוסף, אפשר להחיל טרנספורמציות של ציור על רכיב צאצא (Ibd8f6, b/170296989, b/171493718, b/173030831).
- הוסר
<T>מההצהרה של SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8) - הוספנו את ממשקי ה-API Modifier.scale/rotate
כאמצעי נוחות ל-drawLayer.
- השם של
Modifier.drawOpacityשונה ועכשיו הואModifier.alpha - שינית את השם של
Modifier.drawShadowלModifier.shadow(I264ca, b/173208140)
- השם של
- השדות uptime ו-position של PointerInputData לא יכולים להיות null. (Id468a)
- MaterialTheme מגדיר עכשיו את הצבעים הנכונים של נקודות האחיזה לבחירה ושל הרקע של הבחירה. באפליקציות שאינן Material, אפשר להשתמש ב-AmbientTextSelectionColors באופן ידני כדי להתאים אישית את הצבעים שמשמשים לבחירה. (I1e6f4, b/139320372, b/139320907)
- נוספה הפונקציה WindowManager.isWindowFocused כדי לבדוק אם חלון המארח נמצא במיקוד, ונוסף WindowFocusObserver שמספק קריאה חוזרת (callback) מסוג onWindowFocusChanged. (I53b2a, b/170932874)
- עדכנו את TransformOrigin API כך שיכלול תחביר של פירוק כדי להחזיר את
pivotFractionXואתpivotFractionYבתורcomponent1ו-component2(If43c4, b/173586560) - נוספה בדיקת lint לשמות ולמיקום של פרמטרים של lambda שניתנים להרכבה, כדי לבדוק את העקביות עם ההנחיות של Compose.
בנוסף, העברנו חלק מממשקי ה-API באמצעות
childrenכשם של פונקציית ה-lambda האחרונה שלהם אלcontent, בהתאם לבדיקת ה-lint ולהנחיות. (Iec48e) - נוסף API לבדיקה אם מקשי הצירוף Alt, Ctrl, Meta או Shift נלחצו כשאירוע מקש נשלח. (I50ed9)
- נוספה עומס יתר חדש של
Modifier.drawLayer(). הוא מקבל בלוק lambda ב-GraphicsLayerScope חדש שבו מגדירים את פרמטרי השכבה באופן שמאפשר לדלג על קומפוזיציה מחדש ועל פריסה מחדש כשמתרחש שינוי במצב. הפונקציה DrawLayerModifier היא עכשיו פנימית, כהכנה להעברת הלוגיקה שלה לשיטה placeable.placeWithLayer() של LayoutModifier (I15e9f, b/173030831) - המאפיינים הישנים של Ambients ששמם מסתיים ב-
Ambientהוצאו משימוש והוחלפו במאפיינים חדשים שמתחילים ב-Ambient, בהתאם להנחיות של Compose API. (I33440) - הועבר אל
androidx.compose.ui.text.font.Typeface(Ic2b81)androidx.compose.ui.text.Typeface - הארגומנט הסמנטי mergeAllDescendants שונה ל-mergeDescendants. (Ib6250)
- גלאי חדש של תנועת גרירה שמשעה את API של קלט מצביע, כולל נעילת כיוון. (Icef25)
- שם המחלקה VectorAsset שונה ל-ImageVector הועברה ושם המחלקה VectorAsset שונה ל-Builder כדי שתהיה מחלקה פנימית של ImageVector בהתאם להנחיות ה-API. הוספנו typealias של VectorAssetBuilder כדי לקשר אל ImageVector.Builder לצורך תאימות. (Icfdc8)
- שינינו את השם של ImageAsset ושל ה-methods שקשורים אליו ל-ImageBitmap. (Ia2d99)
- נוסף פרמטר zIndex לפונקציה place() של PlacementScope, כך שהפונקציה Modifier.zIndex() פועלת עכשיו כ-LayoutModifier, וכל פריסה בהתאמה אישית יכולה להגדיר zIndex לצאצאים שלה ישירות בבלוק המיקום (I711f7, b/171493718)
- העברנו את מאפייני הסמנטיקה של הרכיבים הבסיסיים אל ui (I6f05c)
- הוצאה משימוש של place(Offset) ו-placeRelative(Offset). במקום זאת, אפשר להשתמש בעומסים עודפים עם היסטים של int (I4c5e7)
- הוסרו ממשקי API שהוצאו משימוש בעבר: הוסר Modifier.onPositioned, צריך להשתמש ב-Modifier.onGloballyPositioned. הוסרה הפונקציה Modifier.onDraw, צריך להשתמש בפונקציה Modifier.onDrawBehind. הוסר Modifier.plus, צריך להשתמש ב-Modifier.then. הערך Color.Unset הוסר, צריך להשתמש ב-Color.Unspecified. הוסרה המחלקה PxBounds, צריך להשתמש במחלקה Rect במקומה. (Ie9d02, b/172562222)
- ממשק ההתאמה עודכן והפך לפונקציונלי. (I46a07, b/172311734)
- נוסף גלאי מחוות להקשה, להקשה כפולה, ללחיצה ארוכה ולסימון לחיצה באמצעות קלט חדש של מצביע בהשהיה. הוספנו גם כמה כלי עזר, כדי להקל על מפתחים לכתוב גלאי מחוות משלהם. (I00807)
- השם של
idשונה לlayoutIdעבורLayoutIdParentData. השם שלMeasurable.idשונה ל-Measurable.layoutId. (Iadbcb, b/172449643) - גלאי חדש של תנועות מגע מרובות, כולל כלים לזיהוי סיבוב, שינוי מרחק התצוגה והזזה. (Ic459d)
- הוספנו את ממשקי ה-API SweepGradientShader ו-SweepGradientBrush. (Ia22c1)
- השליטה בזמן בבדיקות (TestAnimationClock והשימושים בה) היא עכשיו ניסיונית (I6ef86, b/171378521)
הוספנו ממשקי API לגלילה שמבוססים על קורוטינות:
נוספו LazyListState.snapToItem ו-LazyListState.smoothScrollBy, וגם ממשקי API ברמה נמוכה יותר לשליטה בגלילה. ממשקי ה-API האלה מספקים ממשק השהיה לשליטה בגלילה שמחכה עד שהגלילה מסתיימת לפני שהיא חוזרת. (Ie5642)
הוספנו את Modifier.focusable ל-foundation. אפשר להשתמש בתכונה הזו כדי להוסיף התנהגות שניתן להתמקד בה לרכיב, עם סמנטיקה ונגישות נכונות. (I41eb9, b/152525426, b/162865824)
הוספת הטמעות ברירת מחדל של מתודות ומאפיינים ב-AnimationClockTestRule שאפשר להעביר ל-
clock(I7ea3d, b/173399709)AndroidComposeTestRule יכול לקבל עכשיו מפעילים מותאמים אישית של פעילויות (Ib8288, b/153623653, b/154135019)
השיטה TextLayoutResult.getLineVisibleEnd יצאה משימוש. במקום TextLayoutResult.getLineEnd יש עכשיו פרמטר חדש בשם visibleEnd. (I73282)
TextFieldValue API מעודכן
- made TextFieldValue.composition readonly
- הוסרה חריגה שנוצרה בגלל טווח בחירה לא תקין (I4a675, b/172239032)
תמיכה ב-TtsAnnotation למנוע המרת טקסט לדיבור. (I54cc6)
ממשקי API חדשים להפעלת אנימציות בקורוטינות (Ied662)
תיקוני באגים
- הפרמטר alignment של Box שונה ל-contentAlignment. (I2c957)
- השם של משני offsetPx שונה ל-offset. הם מקבלים עכשיו פרמטרים של lambda במקום State. (Ic3021, b/173594846)
- נוסף הפרמטר resetInput ל-TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- הוספנו בדיקת לינט לפרמטרים של Modifier בפונקציות Composable. בבדיקת ה-lint הזו נבדקים השם, סוג ההחזרה, ערך ברירת המחדל והסדר של הפרמטר, כדי לוודא שהם עקביים עם ההנחיות של Compose. (If493b)
- נוספה באופן זמני אפשרות להפעיל את TestAnimationClock באמצעות MonotonicFrameClock (I1403b, b/173402197)
- נוסף רכיב wrapper של Android Typeface. אפשר לטעון גופן Android באמצעות הפונקציה
typeface, כלומרtypeface(Typeface.DEFAULT). בנוסף, השם שלtypefaceFromFontFamily()שונה ל-typeface()(I52ab7) - הוספנו בדיקת lint כדי לוודא שפונקציות של יצירת Modifier מוגדרות כתוספים ב-Modifier, כדי שאפשר יהיה לשרשר אותן בצורה חלקה. (I07981)
- הסרת המודול הישן ui-test וה-stubs שלו (I3a7cb)
- Recomposer לא מקבל יותר EmbeddingContext. יחסי התלות הנדרשים בתזמון מתקבלים מ-effectCoroutineContext. ה-API FrameManager הוצא משימוש. שילובים של פלטפורמות צריכים לאתחל טיפול משלהם בתמונת מצב גלובלית. (I02369)
- העברת מידע על סגנון לצומת הנגישות. (If5e8d)
- השם של TextUnit.Inherit שונה ל-TextUnit.Unspecified כדי לשמור על עקביות עם יחידות אחרות. (Ifce19)
גרסה 1.0.0-alpha07 של Compose UI
11 בנובמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha07 מופץ. גרסה 1.0.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את המחלקה ScaleFactor
inline כדי לייצג גורמי קנה מידה
לצירים האופקי והאנכי בנפרד, כדי לתמוך בתרחישי שימוש של שינוי קנה מידה לא אחיד.
- נוספה שיטת computeScaleFactor אל ContentScale
- נוספה התכונה ContentScale.FillBounds כדי לבצע שינוי גודל לא אחיד כדי למתוח את גבולות המקור כך שימלאו את היעד.
- נוספו שיטות אופרטור לחישוב פרמטרים של ScaleFactor עם פרמטרים של Size.
- (Ic96a6, b/172291582)
- נוספו המפעלים BiasAlignment ו-BiasAbsoluteAlignment ליצירת Alignments. (Iac836, b/169406772)
- מאפשרים למפתח לנקות את המיקוד בכוח. (I90372)
- תוקן באג שגרם לכך שהגובה לא שורטט בתצוגות בתוך רכיב Compose. (If7782)
- נוצר ב-ContentDrawScope API בשם onDrawBehind כדי להתאים למוסכמה למתן שמות עם Modifier.drawBehind. (I4fc3a, b/171955269)
- הוספנו תמיכה במרחק המצלמה כדי להשלים את השינויים בתלת-ממד, rotationX/rotationY, בממשקי API של שכבות. (I40213, b/171492100)
- נוסף SelectionContainer בלי הקריאה החוזרת (Ibfadb)
- ההערה ExperimentalSubcomposeLayoutApi הוסרה. מעכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף @OptIn (I708ad)
- הפונקציות FirstBaseline ו-LastBaseline הועברו לחבילה androidx.compose.ui.layout (Ied2e7)
- הוסר פרמטר השקיפות מהמשנה drawShadow() כי הוא היה מבלבל. (I82c62, b/171624638)
- האובייקט MeasureResult הועבר מחוץ לאובייקט MeasureScope. (Ibf96d, b/171184002)
- כמה סמלים שקשורים לפריסה הועברו מ-androidx.compose.ui אל androidx.compose.layout.ui. (I0fa98, b/170475424)
- הוסר FocusState2 שיצא משימוש (I686cb, b/168686446)
- המאפיין ZIndexModifier הוא עכשיו פנימי (I1808b, b/171493718)
- העדכון של סוג ההחזרה של שיטת lerp בפרמטרים של Size הוא החזרה של Size שאינו null כדי למנוע boxing מיותר. (Ib0044)
- הוספנו את TestMonotonicFrameClock לבדיקת קוד שמסתמך על MonotonicFrameClock של Compose להמתנה לאירועי פריים של קומפוזיציה באמצעות runBlockingTest של kotlinx-coroutines-test (I4402f)
- הוסר GestureScope.localToGlobal (I15299, b/171462785)
- נוספה תכונה לאיתור
onAllNodesWithSubstring(I81dd7, b/171462889) - המודול androidx.ui.test הוצא משימוש. צריך לעבור אל androidx.compose.ui.test ו-androidx.compose.ui.test.junit4 (I452e8)
תיקוני באגים
- הפונקציה captureToBitmap הועברה אל captureToImage. (I86385)
- המאפיין foundation.Text הוצא משימוש והוחלף במאפיין material.Text. ל-API בסיסי של טקסט שלא צורך ערכים מעיצוב, אפשר לעיין ב-androidx.compose.foundation.BasicText. (If64cb)
- עדכון של TextFields כדי לקבל KeyboardOptions (Ida7f3)
- שינוי השם של KeyboardOptions ל-ImeOptions (I82f36)
- העברנו את KeyboardType ו-ImeAction אל KeyboardOptions (I910ce)
- האפשרות provideDefault נוספה כחלופה לאספקת ערכים סביבתיים, ואפשר להשתמש בה כדי לציין ערכים סביבתיים שיוגדרו רק אם לא סופק כבר ערך סביבתי. (Id6635, b/171024925)
- ה-BaseTextField הוצא משימוש. במקום זאת, משתמשים ב-BasicTextField. (I896eb)
- הוספת מודול ui-test-junit4 (Ib91f8)
- השם של
relativePaddingFromשונה ל-paddingFrom. נוסף משנהpaddingFromBaselineכדי להקל על הגדרת המרחקים מגבולות הפריסה לקווי הבסיס של הטקסט. (I0440a, b/170633813) - השם של LaunchedTask שונה ל-LaunchedEffect כדי לשמור על עקביות עם ממשקי ה-API של SideEffect ו-DisposableEffect. כדי לעודד שימוש בשיטות מומלצות, אסור להשתמש ב-LaunchedEffect ללא פרמטרים של נושא. (Ifd3d4)
- הוספנו משאבים שניתנים להרכבה מחדש כשמעדכנים את ההגדרה. (I6387c, b/167352819)
- מעכשיו, Recomposer דורש CoroutineContext בזמן הבנייה (Ic4610)
- סכום הערכים
zIndexכשמחילים כמה ערכיםModifier.zIndex(). בעבר, הראשון היה מנצח. (Ic514c, b/170623936) - שינויים בהטמעה הפנימית של SlotTable שלא אמורים להשפיע על ה-API הציבורי. (If9828)
- נוספה אפשרות לתיקון אוטומטי במקלדת IME (I57b8d)
- androidx.ui.test עבר אל androidx.compose.ui.test (I9ffdb)
- הוסר KeyboardOptions.toImeOptions מ-API ציבורי. (Ic2e45)
External Contribution
- השבתנו את הפרסום של ארטיפקט פנימי androidx.compose.ui:ui-text-android (Ib93fa)
גרסה 1.0.0-alpha06
28 באוקטובר 2020
androidx.compose.ui:ui-*:1.0.0-alpha06 מופץ. גרסה 1.0.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- ה-Recomposer הוא עכשיו CompositionReference והורה תקף של composition. השימוש ב-Explicit Recomposer נדרש עכשיו בפחות מקומות. (I4036f)
- הוצאנו משימוש את VectorPainter לטובת rememberVectorPainter כדי להבהיר טוב יותר שה-API של הקומפוזיציה משתמש באופן פנימי ב-remember כדי לשמור נתונים בין קומפוזיציות. (Ifda43)
- בוצע עדכון ב-Modifier.drawWithCache API כדי לחשוף את ContentDrawScope כהיקף של מקבל במקום DrawScope, כדי לספק הטמעות עם היכולת לסדר מחדש פקודות ציור. האפשרות הזו שימושית לתרחישי שימוש של מיזוג או גוון, שבהם פיקסלים של תוכן צריכים לעבור רינדור קודם כדי שהאלגוריתם המתאים של מצב המיזוג יופעל בצורה תקינה. (Ie7ec8)
- העברה של SimpleContainer אל PopupTestUtils.kt (I78c57)
- ConsumedData כבר לא מסווג כנתונים. פרטים נוספים זמינים בכתובת https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f)
- תיקון המיקום של נקודת האחיזה לשינוי הסדר בפריסה מימין לשמאל. (I6e1e0)
- שינוי מבנה של DrawScope ו-ContentDrawScope לממשקים במקום למחלקות מופשטות
- נוצרה הטמעה של CanvasDrawScope של DrawScope
- בוצע רפקטורינג בהטמעות של DrawScope כדי להשתמש ב-CanvasScope במקום זאת
- נוצר DrawContext כדי לעטוף תלויות עבור DrawScope
- הוסרו שיטות שיצאו משימוש ב-DrawScope (I56f5e)
- שינוי שובר תאימות: הערך המוחזר הוסר מ-
PointerInputFilter.onPointerEvent(...), כי הערך היחיד שאפשר לשנות באירועי הצבעה הוא נתוני הצריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...), עכשיו אפשר פשוט לשנות את נתוני הצריכה של PointerEvents שמועברים. (I6acd0) - הפכנו את MeasureScope ו-IntrinsicMeasureScope לממשקים. (I1a087, b/170461665)
- הסתרנו את פונקציית המיזוג של AlignmentLine. (I9da1a, b/170612900, b/170611568)
- הוספת אפשרות לציין פרטים של הכלי לבדיקת מודעות בשינוי (modifier) מורכב (Idee08, b/163494569)
- הוספנו את האפשרות 'בחירת הכול' לתפריט הבחירה (Ief02b)
- הפונקציה DrawTransform.rotate עודכנה כך שתקבל פרמטר ברירת מחדל של נקודת ציר במרכז, בהתאם לתיעוד.
- הפונקציה DrawScope.rotateRad עודכנה כך שתצרוך אובייקט Offset לנקודת הציר כדי להתאים לשיטות טרנספורמציה אחרות.
- הוצאה משימוש של עומס יתר של DrawScope.rotateRad שצרך ערכי float לקואורדינטות x ו-y של נקודת הציר.
- (Iffcbb, b/170434992)
תיקוני באגים
- הבדיקה של API lint ל-MissingGetterMatchingBuilder מופעלת עבור androidx (I4bbea, b/138602561)
- מוסיפים בדיקה. (I6b8ae)
- מפעילים מעברים ב-ComposeTestRule ומסירים את האפשרות להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
- נוספה אפשרות IME של KeyboardCapitalization (I8ac38)
- נוספה אפשרות למקלדת עם שורה אחת ל-CoreTextField (I72e6d)
- העברה של SimpleContainer אל PopupTestUtils.kt (I65c3e)
- שינינו את השם של Radius API ל-CornerRadius כדי להבהיר טוב יותר את אופן השימוש בו ב-Compose. עדכנו את המסמכים כדי לציין שרדיוסים שליליים של פינות מוגבלים לאפס. (I130c7, b/168762961)
- שיפור יכולת הפעולה ההדדית עם Android על ידי המשך שליחת MotionEvents ל-Android Views צאצאים שמחזירים false עבור onTouchEvent לכל הפעולות מלבד
ACTION_DOWN(I94c5a, b/170320973) - התיבה הפכה לפונקציה מוטמעת. (Ibce0c, b/155056091)
External Contribution
- תמיכה בלוקאלים שונים עבור
AnnotatedString.capitalizeו-AnnotatedString.decapitalize(I4aa7f)
גרסה 1.0.0-alpha05
14 באוקטובר 2020
androidx.compose.ui:ui-*:1.0.0-alpha05 מופץ. גרסה 1.0.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הוספת DSL להגדרת פרטי הבודק (Ic9a22)
- מעבירים את LongPress אל Text. (Iff2bc)
- התאמה ניסיונית.שינוי קלט להשהיית קלט של מצביע (Ia77d2)
- הוספנו פעולות נגישות להעתקה, להדבקה ולגזירה (I6db4f)
- הוסר constructor ציבורי ל-AndroidOwner (Iacaef)
- חלונות קופצים ותיבות דו-שיח יורשים עכשיו את FLAG_SECURE מהחלון הראשי. נוספה גם אפשרות להגדיר את זה באופן מפורש (I64966, b/143778148, b/143778149)
נתוני הצריכה ניתנים עכשיו לשינוי. בנוסף, קריאות לפונקציות של תוספים שמבצעות צריכה כבר לא מחזירות PointerInputChange חדש, אלא משנות את ה-PointerInputChange שסופק.
זה השלב הראשון בתהליך של שני שלבים שמטרתו לאפשר שינוי של נתוני PointerEvent, כך שקוד משתמש לא יוכל לערוך נתוני מצביע אחרים. השלב השני יהיה להסיר את סוג ההחזרה
List<PointerInputChange>מ-PointerInputFilter.onPointerEvent(...). (Id067e)השבתה של בחירה בטקסט, והדגמה. (Ie7e97)
הפונקציה onGloballyPositioned הפכה לפונקציה מוטמעת (I15830)
השם של OnPositionedModifier שונה ל-OnGloballyPositionedModifier, והשם של onPositioned() שונה ל-onGloballyPositioned(). (I587e8, b/169083903)
המאפיין hasPendingMeasureOrLayout נוסף לאובייקט Owner, כדי לציין אם יש לאובייקט Owner עבודת פריסה בהמתנה. (I3d9f8, b/169038599)
נוסף API לניקוי המיקוד באופן פרוגרמטי (Ie1dc2, b/161487952)
בוצעה הסרה של
PointerInputFilter.onPointerInput(...). במקומה צריך להשתמש ב-PointerInputFilter.onPointerEvent(...). (I6f04a)שינויים בגודל
- הוסרה הפונקציה Size.getFlipped
- הוסרה התכונה Size.rem
- הוסרה הפונקציה Size.truncDiv (Ief44d, b/169790720)
במסגרת התקנון של ערכי Sentinel עבור מחלקות מוטבעות, שם המחלקה Color.Unset שונה ל-Color.Unspecified כדי לשמור על עקביות עם מחלקות מוטבעות אחרות (I97611, b/169797763)
הוצג TextOverflow.None. כשהערך של overflow הוא None, הרכיב Text לא יטפל יותר בגלישה, וידווח על הגודל בפועל שלו ל-LayoutNode. (I175c9, b/158830170)
הפרמטר scope ב-AnnotatedString.Builder.addStringAnnotation נקרא עכשיו tag כדי לשמור על עקביות ה-API. (I7c8cb)
תיקוני באגים
- הביצועים של LazyColumn/Row משתפרים כי מתבצעת פחות עבודה בהרכב משנה בכל גלילה. נוספה השיטה החדשה hasInvalidations() למחלקה Composition. השיטה hasPendingChanges() מ-Recomposer שונתה ל-hasInvalidations() (Ib2f32, b/168293643, b/167972292, b/165028371)
- הפרמטרים של Size.Unspecified עודכנו ל-Float.NaN במקום ל-Float.POSITIVE_INFINITY. עודכנו ההטמעות של Painter כדי לבדוק גם את Size.Unspecified וגם גדלים לא סופיים. (I95a7e)
- הסדר של קריאות place() בפריסות מותאמות אישית מגדיר עכשיו את סדר הציור של הצאצאים (Ibc9f6)
- תמיכה בהמרת AnnotatedString ל-SpannableString לצורך נגישות. (Ief907)
- נוספו stub למחלקות של Android בפלטפורמות ישנות יותר כדי להימנע משימוש בהשתקפות כשזה אפשרי. (Ia1790)
- תוקן באג: אם המקלדת הווירטואלית מוצגת והאפליקציה מתרגמת, קואורדינטות הקלט של מצביע העכבר הופכות שגויות. (Ic4cec, b/163077821)
גרסה 1.0.0-alpha04
1 באוקטובר 2020
androidx.compose.ui:ui-*:1.0.0-alpha04 מופץ. גרסה 1.0.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- נוסף OwnerScope כדי לאפשר איסוף של היקפי תצפית על פריסות וציורים אחרי שהם כבר לא תקפים. (Ic4cf8)
- נוספו OnRemeasuredModifier ו-onSizeChanged() כדי לקבל קריאה חוזרת כשפריסת התוכן נמדדה מחדש והגודל השתנה, בהתאמה. (I657cf, b/154108792)
- הוספת פעולה של לחיצה ארוכה (I6281b, b/156468846)
- הגדרנו את FocusManager כפרטי. (I7872f)
העדפנו ליצור הטמעה ייעודית של DrawCacheModifier במקום להוסיף מאפיינים אופציונליים ב-DrawModifier.
עדכון המסמכים של שיטות שונות (Ibd166)
כדי להימנע מיצירת אובייקט, צריך להגדיר את TextRange כ-inline. (Id034b)
אי אפשר יותר לקרוא את הערכים PlacementScope#parentWidth ו-PlacementScope#parentLayoutDirection מבלוק המיקום של פריסת מודעות בהתאמה אישית. (Icc1ae, b/168295623)
מוסיפים את AccessibilityScrollState למאפייני הסמנטיקה. (Ifeda9)
הוספנו את Modifier.drawWithCache כדי לתמוך ביצירת אובייקט ציור שיוצר מחדש באופן מותנה תלויות שתלויות במידע על גודל או מצב (I376dc).
המאפיין ParagraphConstraints הוסר. הרוחב מועבר עכשיו ישירות לפסקה. (Ica712)
תיקוני באגים
- עודכנו הרבה ממשקי API של גרפיקה
- ממשקי ה-API של טרנספורמציות של שינוי גודל וסיבוב עודכנו כך שישתמשו בפרמטר Offset יחיד כדי לייצג את קואורדינטת נקודת המשען, במקום בפרמטרים נפרדים של מספרים ממשיים לקואורדינטות x/y ב-DrawScope וב-DrawTransform
- הוסרו השיטות Rect.expandToInclude ו-Rect.join
- עודכן התיעוד של Radius כך שיצוין בו oval (אליפסה) בנוסף ל-elliptical (אליפטי)
- הוספנו תיעוד שמציין שאסור לקרוא ישירות לבונה הציבורי של המחלקה Radius inline, אלא צריך ליצור מופעים של אובייקטים מסוג Radius באמצעות בוני הפונקציות שלהם
- הוסרו ממשקי RoundRect API לשליחת שאילתות לגבי topRight, bottomRight, bottomCenter וכו'.
- הוצא משימוש Rect.shift לטובת Rect.translate
- הוסרו ממשקי ה-API RoundRect.grow ו-Rect.shrink
- השם של RoundRect.outerRect שונה ל-Rect.boundingRect
- הוסרו השיטות RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
- השם של RoundRect.longestSide שונה ל-RoundRect.maxDimension
- שם המאפיין RoundRect.shortestSide שונה ל-RoundRect.minDimension
- הפכנו את RoundRect.center למאפיין במקום לפונקציה
- העדכון של ה-constructor של RoundRect מאפשר להשתמש במאפייני Radius במקום בפרמטרים נפרדים של ערכי רדיוס x/y
- הוסרו ממשקי API של גודל שהניחו שמדובר במלבן עם מקור ב-0,0
- הוספנו ל-Radius API להשמדה
- העברנו פונקציות שונות של התוסף RoundRect להיות מאפיינים במקום
- (I8f5c7, b/168762961)
- הפונקציה foundation.Box הוצאה משימוש. במקומה צריך להשתמש ב-foundation.layout.Box. (Ie5950, b/167680279)
- השם של Stack שונה ל-Box. ה-Box הקיים יוצא משימוש לטובת ה-Box החדש ב-compose.foundation.layout. ההתנהגות של Box החדש היא להציב את רכיבי הצאצא אחד מעל השני כשיש לו כמה רכיבי צאצא – זה שונה מ-Box הקודם, שהתנהג בצורה דומה ל-Column. (I94893, b/167680279)
- הפרמטרים של קישוט התיבה הוצאו משימוש. אם רוצים להוסיף קישוטים או ריווח לתיבה, צריך להשתמש במקום זאת בשינויים (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- עודכנו הרבה ממשקי API של גרפיקה
- עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה בהיקף מוגבל כדי לציין שהטרנספורמציה חלה רק בתוך הקריאה החוזרת (callback) ומוסרת אחרי שהקריאה החוזרת מופעלת
- עדכנו את המסמכים בנושא clipPath כך שיפנו אל Path במקום אל מלבן מעוגל
- תוקן הרווח במסמכי התיעוד של הפרמטר right ב-clipPath
- השם של DrawScope.drawCanvas שונה ל-drawIntoCanvas והוסר פרמטר הגודל
- שמות הפרמטרים dx/dy בשיטת inset שונו ל-horizontal ול-vertical
- הוספנו עומס יתר של inset שמספק את אותו ערך inset לכל 4 הגבולות
- הסרנו את התיעוד בנושא שיטת ההזחה, שצוין בו שההזחה תחול על כל 4 הצדדים
- עדכון המסמכים של המחלקה Rect
- עדכון ההערות על פרמטרים של Rect כדי להתאים לסגנון kdoc
- הוסרו Rect.join ו-Rect.expandToInclude
- נוצר עומס יתר עבור Rect.translate(offset) ו-Rect.shift הוצא משימוש
- (If086a, b/167737376)
- הוספת ההערה @VisibleForTesting ל-rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ו-textInputServiceFactory, הפיכתם ל-API פנימי והסתרת ה-kdoc שלהם (I554eb, b/168308412)
- כדי להשבית את הבחירה שמוגדרת כברירת מחדל ולמנוע התנהגות בלתי צפויה, צריך להסיר את SelectionContainer מהחלק העליון. אפשר להשתמש ב-SelectionContainer באופן ספציפי כדי לעטוף את התוכן שצריך להיות ניתן לבחירה. (I8dfe0, b/158459594)
גרסה 1.0.0-alpha03
16 בספטמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha03 מופץ. גרסה 1.0.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הסרת פעולות סמנטיות של גלילה קדימה או אחורה. נוספו שלבים ב-AccessibilityRangeInfo. (Ia47b0)
- הוסר
onInvalidate()מהרשימהOwner–OwnedLayerמטפל בביטול תוקף. (Ica72b, b/162061312) הוסרו שיטות של אופרטורים ב-Size API שצורכות פרמטרים של Offset. התוצאה של הפעולות האלה לא ברורה, וסוג התוצאה לא צפוי. לדוגמה, אם הפונקציה size - offset מחזירה הפרש, האם היא צריכה להחזיר את ההפרש או את הגודל?
הוסרו גם methods שהוצאו משימוש במחלקה Size. (Iec902, b/166514214)
תיקוני באגים
- תוקנה הבעיה שבה לפעמים פריטים של LazyColumn נמשכו בצורה שגויה, מה שגרם גם לקריסות בתנאים מסוימים. (Ibcf17, b/163066980, b/165921895)
- הוצאנו משימוש את DpConstraints ואת ממשקי ה-API שמשתמשים בו. (I90cdb, b/167389835)
- הועברו
createAndroidComposeRuleוAndroidInputDispatcherמandroidx.ui.test.androidאלandroidx.ui.test(Idef08, b/164060572) - השימוש ב-gravity שונה באופן עקבי ל-align או ל-alignment ב-APIs של פריסות. (I2421a, b/164077038)
- נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule כי השיטות הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)
גרסה 1.0.0-alpha02
2 בספטמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha02 מופץ. גרסה 1.0.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- remove callback to notify Owner when layoutnode bounds change. (If654e, b/166106882)
- הוספנו תמיכה בפרמטרים של filltype בנתיבים של גרפיקה וקטורית כדי לתמוך בחיתוכי צורות בהתאם לכללי מילוי הנתיבים evenOdd או NonZero. (I43dd2)
- השיעורים Uptime ו-Velocity הם עכשיו שיעורים מוטבעים (I48f4a)
- משך הזמן הוא עכשיו מחלקה מוטבעת (I565eb)
- הוספת קריאה חוזרת כדי להודיע לבעלים כשמשתנים הגבולות של layoutnode. (Ic40b3)
תוקנה בעיה שבה בנאי הפונקציה Rect עם Offset ורדיוס יצר את ה-Rect בסדר left, right, top, bottom במקום בסדר left, top, right, bottom.
הוסרו שיטות נלוות שהוצאו משימוש ב-Rect לטובת פונקציות constructor.
נוספו בדיקות לאימות שיטות ב-Rect.kt (I08460, b/165822356)
תיקוני באגים
- נוסף MutableRect, מלבן שאפשר לשנות. (I71bd2, b/160140398)
- הפונקציה Matrix4 הוחלפה בפונקציה Matrix. כל החלקים האחרים בחבילת vectormath הוסרו. (Ibd665, b/160140398)
המוסכמה לקריאה לפונקציות שניתנות להגדרה השתנתה. זהו שינוי בינארי שעלול לגרום לכשל. צריך לקמפל מחדש את כל הספריות כדי שהן יפעלו עם הגרסה הזו של תוסף הקומפיילר של Compose.
השינוי הזה לא יוצר שינוי שובר תאימות ברמת המקור, כי ממשקי ה-API היחידים שהשתנו הם ממשקי API של קומפיילר שנדרשת הסכמה מפורשת לשימוש בהם. (I7afd2, b/158123185)
תוקנה קריסה שיכולה להתרחש כששליחה ל-PointerInputFilter יכולה לגרום להסרה סינכרונית של ה-PointerInputFilter. (I58f25)
גרסה 1.0.0-alpha01
26 באוגוסט 2020
androidx.compose.ui:ui-*:1.0.0-alpha01 מופץ. גרסה 1.0.0-alpha01 מכילה את השמירות האלה.
גרסה 0.1.0-dev
גרסה 0.1.0-dev17
19 באוגוסט 2020
androidx.compose.ui:ui-*:0.1.0-dev17 מופץ. גרסה 0.1.0-dev17 מכילה את השמירות האלה.
שינויים ב-API
- האפשרות
emitViewהוצאה משימוש. אם אפשר, משתמשים ב-AndroidViewכדי להוציא Views בתוך Compose. שימו לב: בעתיד לא תהיה תמיכה בהוספה ישירה של Views ו-ViewGroups, אלא אם הם עלים בעץ ההרכב. במקרה כזה, אפשר להשתמש ב-AndroidView. (I29b1e, b/163871221) - הוצא משימוש והוחלף ב-
FocusState(Ia8b79, b/160822876, b/160923332)FocusState2 - הוסרו עומסי היתר (overloads) של AndroidView שהוצאו משימוש. (I946b9, b/163802393)
- עכשיו אפשר להצהיר בפונקציות emit מותאמות אישית שאפשר לדלג על אחת או יותר מהפונקציות setter שלהן ולבצע קומפוזיציה מחדש באופן עצמאי. (Ibbd13)
שינינו את מחלקות הווקטור כך שלא יהיו יותר מחלקות נתונים, כי נעשה שימוש באותו מופע אובייקט ליצירה.
נוסף דגל mutableStateOf ל-VectorPainter כדי לצייר מחדש באופן מותנה אם התוכן של הווקטור משתנה.
בוצע רפקטורינג של מופע VectorComponent כדי שיהיה חלק מ-VectorPainter, כי נעשה בו שימוש חוזר בכמה קומפוזיציות.
בוצע עדכון של GroupComponent ו-PathComponent כך ששדות השם שלהם ניתנים לשינוי (Ieae45, b/151378808)
הוסרו
onChildPositionedו-OnChildPositionedModifier. המפתחים צריכים להשתמש ב-onPositionedוב-OnPositionedModifierבפריסת הצאצא במקום זאת. (I4522e, b/162109766)ההיסט הפך למחלקה מוטבעת (Iaec70)
נוסף פרמטר של שינוי ל-SelectionContainer (I4aada, b/161487952)
הוסר FocusModifier שיצא משימוש (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)
הפונקציה
mergePolicylambda נוספה אלSemanticsPropertyKey. אפשר להשתמש בזה כדי להגדיר מדיניות מותאמת אישית למיזוג סמנטי של mergeAllDescendants. מדיניות ברירת המחדל היא להשתמש בערך של ההורה אם הוא כבר קיים, אחרת בערך של הצאצא. (Iaf6c4, b/161979921)האילוצים הם עכשיו מחלקה מוטבעת (I88736)
נוסף FocusManager שמעביר את הלוגיקה הנפוצה של המיקוד מ-AndroidComposeView (I528ef, b/161487952, b/162206799)
שמות מעודכנים של PointerEventPass לגרסת אלפא. (Ifda6f)
IntOffset הוא עכשיו מחלקה מוטמעת (Iac0bf)
IntSize היא עכשיו מחלקה מוטבעת (I2bf42)
השם של
PlacementScope.placeAbsolute()שונה ל-PlacementScope.place(), והשם הקודםPlacementScope.place()שונה ל-PlacementScope.placeRelative(). כתוצאה מכך, השיטהPlacementScope.place()לא תשקף יותר אוטומטית את המיקום בהקשרים של כתיבה מימין לשמאל. אם רוצים להשתמש במדיניות הזו, צריך להשתמש במדיניותPlacementScope.placeRelative()במקום זאת. (I873ac, b/162916675)AlertDialog משתמש עכשיו ב-FlowRow ללחצנים (I00ec1, b/161809319, b/143682374)
חלק מכלי הבדיקה לא ציבוריים כי הם לא נמצאים במקום הנכון. תהיה גלויה באופן ציבורי בעתיד. (I32ab1)
שינוי מבנה הקוד של קלט מצביע. (Ie3f45)
הוצאה משימוש של PxBounds לטובת Rect. עדכנו את כל השימושים ב-PxBounds באמצעות rect והוספנו הערות מתאימות של deprecate/replace with כדי לסייע בהעברה. (I37038, b/162627058)
הוסר KeyEvent2 שהוצא משימוש. במקומו, צריך להשתמש ב-KeyEvent. (Ied2d0, b/162097587)
ל-KeyEvent יש מאפיין unicode שאפשר להשתמש בו כדי לקבל את תו ה-Unicode שנוצר על ידי השילוב שצוין של מקש ומצב מקש Meta (If3afc)
הפכנו את האירוע המותאם אישית DelayUp ואת המחלקות שקשורות אליו ל-API אופציונלי, כי סביר מאוד שהוא ישתנה. (I56d6f)
הוסרו 2 PointerEventPasses שכבר לא נדרשים. (I3dd9d)
הוספת פרמטרים של צבע, צל ו-TextDecoration ל-Paragraph.paint. הפונקציה הזו שימושית כדי להימנע מיצירה מחדש של Paragraph שלא לצורך. (I81689)
תיקוני באגים
- הוסרו קריאות חוזרות (callback) של onFocusChanged מ-TextField. במקומו, צריך להשתמש ב-Modifier.focusObserver. (I51089, b/161297615)
- המאפיין Modifier.drawBorder הוצא משימוש. במקומו צריך להשתמש ב-Modifier.border. הוחלף Border data class ב-BorderStroke (I4257d, b/158160576)
הוסרו קריאות ל-FrameManager שיצאו משימוש.
בוצעו שינויים בממשקי API פנימיים של Compose כדי לצמצם את התקורה של מעקב אחרי אובייקטים של מצב כמו
mutableStateof()(I80ba6)הוסרו הרכיבים VerticalScroller ו-HorizontalScroller. במקום זאת, משתמשים ב-ScrollableColumn/Row. הוסר Modifier.drawBackground. שימוש ב-Modifier.background (I73b0d, b/163019183)
תוקנה קריסה שהתרחשה כשנעשה שימוש בלולאת for במשהו ששומר את המצב. עכשיו מותר להשתמש באותו מפתח ב-savedInstanceState(), ה-API של UiSavedStateRegistry מותאם לדרישה החדשה הזו (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)
הפונקציה הניתנת להרכבה
state { ... }הוצאה משימוש. במקומה, מומלץ להשתמש בקריאות מפורשות ל-remember { mutableStateOf(...) }כדי לשמור על בהירות. כך מצטמצם מספר ממשקי ה-API והמושגים לניהול מצבים, והשיטה הזו תואמת לדפוסby mutableStateOf()של הקצאת מאפייני מחלקה. (Ia5727)השם RRect שונה ל-RoundRect כדי להתאים יותר לדפוסי מתן השמות ב-Compose. נוצרו פונקציות דומות של constructor ל-RRect, והוצאו משימוש פונקציות של constructor ל-RRect (I5d325).
גרסה 0.1.0-dev16
5 באוגוסט 2020
androidx.compose.ui:ui-*:0.1.0-dev16 מופץ. גרסה 0.1.0-dev16 מכילה את השמירות האלה.
שינויים ב-API
- הפונקציה OnChildPositioned הוצאה משימוש. במקום זאת, צריך להשתמש ב-OnPositioned ברכיב הצאצא. (I87f95, b/162109766)
- הפונקציה setViewContent הוצאה משימוש. במקומה צריך להשתמש בפונקציה setContent. (I7e497, b/160335130)
- נוסף AndroidViewBinding API להרחבת משאבי פריסה (layout) ולהרכבתם, על סמך ViewBinding. (I081c6)
- הוחלף KeyEvent2 ב-KeyEvent (I2d770, b/162097585)
- הוספנו תמיכה במקש Alt פיזי (I9036b)
- התכונה FocusManager הוצאה משימוש. במקום זאת, צריך להשתמש ב-Modifier.focus(), ב-Modifier.focusObserver() וב-Modifier.focusRequester(). (I74ae4, b/162211322)
- loadVectorResource תומך במאפייני trimPath (I808fe)
- העברת תיבת דו-שיח לממשק המשתמש (I47fa6)
- הוסרו 2 PointerEventPasses שכבר לא נדרשים. (I33ca7)
- הוטמע PointerInteropModifier שמאפשר לקבל MotionEvents ולקיים אינטראקציה עם Compose כאילו מדובר בהטמעה של Android View. (Ieb08c)
- הוסר שינוי התג שיצא משימוש. במקומו צריך להשתמש ב-layoutId. (Idaa05, b/162023919)
- ממשקי ה-API לתמיכה בכתיבה מימין לשמאל עודכנו. נוסף LayoutDirectionAmbient, שאפשר להשתמש בו כדי לקרוא ולשנות את כיוון הפריסה. הוסרו Modifier.rtl ו-Modifier.ltr. (I080b3)
- תמיכה בחיתוך נתיבים בגרפיקה וקטורית (Ie16c9, b/158188351)
- נוסף Modifier.layout() שמאפשר ליצור בקלות התאמה אישית של פריסה (I73b69, b/161355194)
- הוספנו AndroidView API חדש והוצאנו משימוש את הקיימים. (I5bcfd)
- ה-API Modifier.plus הוצא משימוש. במקומו צריך להשתמש ב-Modifier.then. השימוש במילה 'אז' מספק אות חזק יותר לגבי הסדר, ובנוסף אוסר על הקלדת
Modifier.padding().background() + anotherModifier, מה ששובר את הרצף ומקשה על הקריאה (Iedd58, b/161529964) - הוספה של מחלקות משנה של [Abstract]ComposeView View לאירוח תוכן של Compose בהיררכיית View. (I46357)
- הפונקציות
Rowו-Columnהן עכשיו פונקציות מוטמעות, מה שמפחית באופן משמעותי את התקורה של השימוש בהן. (I75c10) - התוסף SubcomposeLayout נוסף. זוהי פרימיטיב ברמה נמוכה שמאפשרת להרכיב את רכיבי הצאצא במהלך המדידה, אם רוצים להשתמש בערכים שזמינים רק מאוחר יותר במהלך המדידה להרכבת עץ המשנה. לדוגמה, WithConstraints לא מיושם באמצעות SubcomposeLayout. (I25cc8)
- נוספה הפונקציה
SemanticsNode.positionInRootכדי לקבל את המיקום של SemanticsNode ביחס לבסיס של היררכיית Compose (Icdf26, b/161336532) - MotionEvents מועברים מ-Android, דרך Compose, ובחזרה ל-Android. (I14be8, b/158034713)
- הוסר dropdownPopup. (I00430)
- מיקום קבוע של חלונות קופצים במסכים עם מגרעת. (Idd7dd)
- הוספת פעולת נגישות לקבלת TextLayoutResult (I9d6e6)
- נוסף RemeasurementModifier. הוא מאפשר למדוד מחדש את הפריסה באופן סינכרוני. בדרך כלל לא צריך להשתמש בה, כי המדידה מחדש או הפריסה מחדש מתבצעות באופן אוטומטי, אבל אנחנו משתמשים בה בתוך LazyColumnItems במהלך הגלילה. (I5f331, b/160791058)
- הסרה של getLineEllipsisOffset/getLineEllipsisCount. במקום זאת, צריך להשתמש ב-getLineVisibleEnd/getLineEnd/isLineEllipsized. (I85aa2)
- מומלץ להוסיף סימנים או הערות כדי לעקוב אחרי שיטות מומלצות. (I66b20)
- חשיפה של עוד ממשקי API של שורות ב-TextLayoutResult. (I79bd2)
- עכשיו אפשר לגשת לממירים וקטוריים מובנים כדי להמיר יחידות מובנות באמצעות Foo.VectorConverter. לדוגמה: Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter וכו' (I3e273)
תיקוני באגים
- תיקונים נרחבים ב-API (I077bc)
- הסרה של ממשק OffsetBase שלא בשימוש
- התאמה בין המחלקות Offset ו-IntOffset כדי ליצור ממשק API עקבי
- משנים את השם של IntOffset.Origin ל-IntOffset.Zero כדי לשמור על עקביות עם Offset API
- העברנו את השיטה nativeCanvas מממשק Canvas כדי לתמוך בצרכנים שרוצים ליצור מופעי Canvas משלהם
- נוצרת מחלקה מסוג stub בשם EmptyCanvas כדי לבצע refactoring של DrawScope כך שיהיה פרמטר שאינו null במקום lateinit, וכדי להבטיח שהשדה לא יהיה null.
- שינינו את השם של סוגי ה-enum של ClipOp ל-Pascal Case
- השמות של סוגי ה-enum FilterQuality שונו ל-Pascal Case
- השמות של ה-enums של StrokeJoin שונו ל-Pascal Case
- שמות הערכים של enum PointMode שונו ל-Pascal Case
- שינוי השם של סוגי ה-enum PaintingStyle ל-Pascal Case
- שמות הערכים של PathFillType שונו ל-Pascal Case
- השמות של סוגי ה-enum של StrokeCap שונו ל-Pascal Case
- היישום של DrawCache עודכן כך שהוא לא משתמש יותר בפרמטרים של lateinit
- עדכון של DrawScope כך שלא נעשה יותר שימוש בהעברת הרשאה עצלה לפרמטרים פנימיים של fillPaint ו-strokePaint
- בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
- עדכון המחלקה Outline כך שתכלול הערות @Immutable
- הוספנו הערות @Immutable לכל הוראת נתיב ב-PathNode
- בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון, כי הפונקציה compose כבר מטפלת בהן
- הוצאנו משימוש את שיטות ה-constructor הנלוות של Rect לטובת פונקציות constructor
- עדכנו את המחלקות של Brush ואת בנאי הפונקציות באמצעות ממשקי ה-API @Immutable ו-@Stable
- העדכון של ספירת VertexMode ל-PascalCase
- השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה פרמטרים של קו בציור אם הם השתנו
- עדכון של Size כדי להוסיף API של פירוק מבנה, לשנות את השם של UnspecifiedSize ל-Unspecified ולהסיר שיטות שלא נמצאות בשימוש
- עדכון של השימוש ב-BlendMode API של Compose כדי למפות בצורה נכונה בין BlendModes של Android framework לבין מצבי PorterDuff בהתאם לרמת ה-API. הוספנו את BlendMode#isSupported API כדי שישמש כשאילתת יכולת לקביעה אם BlendMode נתמך במכשיר לפני השימוש בו. (I0ef42)
- הפרמטר LazyItemScope נוסף לפרמטר itemContent של רשימות Lazy. הוא מספק משנים למילוי הגודל המקסימלי של הרכיב ההורה, וכך פותר את מקרה השימוש שבו הפריט צריך למלא את אזור התצוגה והמשנה הרגיל Modifier.fillMaxSize() לא פועל כי הפריט נמדד עם אילוצי אינסוף. (Ibd3b2, b/162248854)
- בוצעה הסרה של
SemanticsNodeInteraction.performPartialGesture. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.performGesture. (Id9b62) - השם של
LazyColumnItemsשונה ל-LazyColumnFor. השם שלLazyRowItemsשונה ל-LazyRowFor(I84f84) - החבילה
foundation.shape.cornerנפרסה ל-foundation.share(I46491, b/161887429) - השם של
AndroidComposeTestRuleשונה ל-createAndroidComposeRule. (I70aaf) - הוספנו עוד ממשקי API ל-
TextLayoutResult. (Id7e04) - השם של Material
FilledTextFieldשונה ל-TextField, והשם של foundationalTextFieldשונה ל-BaseTextField, כדי שיהיה קל יותר למצוא את ה-API הרצוי הפשוט ביותר ולהשתמש בו (Ia6242, b/155482676) - השם של Modifier.drawBackground שונה ל-Modifier.background (I13677)
גרסה 0.1.0-dev15
22 ביולי 2020
androidx.compose.ui:ui-*:0.1.0-dev15 מופץ. גרסה 0.1.0-dev15 מכילה את השמירות האלה.
עדכון התלות
- כדי להשתמש בגרסה
0.1.0-dev15של Compose, צריך לעדכן את יחסי התלות בהתאם לקטעי הקוד החדשים שמוצגים למעלה בקטע הצהרה על יחסי תלות.
שינויים ב-API
- המאפיין FocusModifier הוצא משימוש והוחלף במאפיינים Modifier.focus, Modifier.focusRequester ו-Modifier.focusObserver. המאפיינים FocusState ו-FocusDetailedState הוצאו משימוש לטובת FocusState2 (I46919, b/160822875, b/160922136)
- נוסף משנה כדי לצפות בשינוי של מצב המיקוד. (I05866, b/160924455, b/160923326)
- נוסף משנה לבקשות לשינוי המיקוד (I8dd73, b/161182057, b/160924778)
- התאמה של תפריט סרגל הכלים כדי שהאפשרויות 'העתקה', 'גזירה' ו'הדבקה' יוצגו בצורה תקינה. (Id3955)
- מאפיינים סמנטיים של ערך יחיד משתמשים עכשיו בסגנון קריאה.
לדוגמה, המחרוזת 'semantics { hidden = true }' נכתבת עכשיו כך:
semantics { hidden() }. (Ic1afd, b/145951226, b/145955412) - נוסף Modifier.focus שמחליף את FocusModifier. (Ib852a, b/160924778)
- הוספת FloatingToolbar לבחירת TextField. (Ie8b07)
- הוספנו הערת API ניסיונית ל-API שקשור לקלט של מפתח (I53c0a)
- נוספה הערת API ניסיונית לכל ה-API שקשור למיקוד (I53b24, b/160903352)
- נוסף FocusState2 שיחליף את FocusDetailedState (I0a3ba, b/160822595)
- הוספנו את ExperimentalFocus, שהוא הערת @OptIn ל-Focus API. (I1544b, b/160820961)
- נוספה מחלקת יחידות IntBounds שמייצגת גבולות של פיקסלים שלמים מפריסת הדף. ה-API של PopupPositionProvider עודכן כדי להשתמש בו. (I0d8d0, b/159596546)
- הכלי Applier דורש עכשיו שימוש בשיטה clear() לסילוק קומפוזיציות (Ibe697)
- האירוע KeyEvent הוצא משימוש והוחלף באירוע KeyEvent2 (I68730)
- נוסף דגל אופציונלי חדש, useUnmergedTree, לכלי לבדיקת קבצים. (I2ce48)
- API ניסיוני של LayoutNode (I4f2e9)
הוספנו שיטות העתקה לסוגים שונים של מחלקות מוטבעות, כולל:
- היסט
- גודל
- רדיוס
- נסיעה, תנועה
TransformOrigin
הוצאה משימוש של השיטה Size.copy של אובייקט נלווה לטובת שיטת העתקה של מופע (Ife290, b/159905651)
חלונות קופצים, תיבות דו-שיח ותפריטים מקבלים עכשיו בירושה את MaterialTheme ההקשרי (Ia3665, b/156527485)
השם של TextDirection השתנה ל-ResolvedTextDirection (I3ff38)
הוסר פרמטר כיוון הפריסה מבלוק המידה של הפונקציה Layout(). עם זאת, כיוון הפריסה זמין בתוך הקריאה החוזרת דרך אובייקט היקף המדידה (Ic7d9d)
שינוי מבנה של SelectionHandles לשימוש חוזר. (I420e0)
המאפיין Clickable הוסר. שימוש ב-Modifier.clickable (I84bdf)
התכונות TestTag ו-Semantics נמחקו. במקום זאת, אפשר להשתמש ב-Modifier.testTag וב-Modifier.semantics (I15ff0, b/158841414)
לפני השינוי הזה, התוסף של מהדר Compose היה מיירט באופן לא טריוויאלי קריאות ל-constructors בתוך פונקציית @Composable אם היה (I5205a, b/158123804)
השם של Modifier.tag שונה ל-Modifier.layoutId, כדי למנוע בלבול עם Modifier.testTag. (I995f0)
המיקומים של קו היישור שמוחזרים מ-Placeable#get(AlignmentLine) כבר לא יכולים להיות null. אם קו היישור שנשלחה לגביו השאילתה חסר, יוחזר הערך AlignmentLine.Unspecified. (I896c5, b/158134875)
נוסף פרמטר של modifier לקומפוזיבל AndroidView. (I48a88, b/158746303)
הפונקציה Semantics() הוצאה משימוש. במקומה צריך להשתמש ב-Modifier.semantics(). (I72407, b/158841414)
הוספת viewModel() composable שמאפשר ליצור או לקבל ViewModel שכבר נוצר באופן דומה לאופן שבו הוא פועל ב-Activity או ב-Fragment (I5fdd1)
השימוש ב-IntPx הוחלף ב-Int. השימוש ב-IntPxPosition הוחלף ב-IntOffset. הוחלף IntPxSize ב-IntSize. (Ib7b44)
כדי לאחד את מספר הכיתות שמשמשות לייצוג מידע על גודל, צריך להשתמש בכיתת הגודל במקום ב-PxSize. השימוש בטכניקה הזו מאפשר ליהנות מהיתרונות של מחלקה מוטמעת כדי להשתמש בערך מסוג long לאריזת 2 ערכים מסוג float שמייצגים רוחב וגובה. (Ic0191)
כדי לצמצם את מספר המחלקות שמשמשות לייצוג נתוני מיקום, מומלץ להשתמש במחלקה Offset במקום ב-PxPosition. השימוש ב-inline class מאפשר ליהנות מהיתרונות של long כדי לארוז 2 ערכים מסוג float שמייצגים את ההיסטים x ו-y שמיוצגים כערכים מסוג float. (I3ad98)
החלפנו את השימוש במחלקה Px בכמה מחלקות Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים. מחקנו את הכיתה Px במלואה (I3ff33)
החלפנו את השימוש במחלקת Px בכמה מחלקות Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I086f4)
החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (Id3434)
החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I97a5a)
התג TestTag הוצא משימוש. במקומו, צריך להשתמש ב-Modifier.testTag. (If5110, b/157173105)
ההטמעה של ParentDataModifier#modifyParentData שהוגדרה כברירת מחדל, לא פעלה והוסרה – היא הייתה שוות ערך למצב שבו הממשק לא הוטמע מלכתחילה. (I0deaa)
הוצא משימוש בעבר ScaleFit והוסר. במקום זאת, צריך להשתמש ב-ContentScale. (Ifbc5b)
הוחלף השימוש במחלקת Px במחלקות שונות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I19d02)
נוסף הרכיב DropdownMenu ב-ui-material, הטמעה של תפריט Material Design. (I9bb3d)
הוסר LayoutTag() שהוצא משימוש. במקומו צריך להשתמש ב-Modifier.tag(). הסרנו את השיטה Modifier.matchParent() שהוצאה משימוש. במקומה צריך להשתמש ב-Modifier.matchParentSize(). (If8044)
החלפנו את השימוש במחלקה Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I57bff)
הפסקנו את ההוצאה משימוש של Modifier.semantics כדי לאפשר שימוש ברכיבים ברמה גבוהה. (I4cfdc)
איחדנו את ההטמעות של CanvasScope, כך שעכשיו יש רק DrawScope ו-ContentDrawScope. שינינו את השם של CanvasScope ל-DrawScope. בוצע עדכון ב-DrawScope כדי להטמיע את הממשק Density ולספק את LayoutDirection בוטלה מחלקת המשנה DrawScope ב-ContentDrawScope בוצע עדכון ב-Painter וב-PainterModifier כדי שלא יחזיקו יותר במאפיין RTL בעצמם, כי DrawScope כבר מספק את זה בלי לספק אותו באופן ידני (I1798e)
DoubleTapGestureFilter מבחין עכשיו בין SingleTapGestureFilter בעץ. (If92b1)
עדכנו את Alignment API והוספנו תמיכה ביישור מוחלט (שלא משתקף אוטומטית בהקשר של כתיבה מימין לשמאל) (I38cd3)
בוצעו שינויים ב-DrawLayer modifiers API: השם outlineShape שונה ל-shape, ערך ברירת המחדל שלו הוא RectangleShape והוא כבר לא ניתן לאיפוס. השם clipToOutline שונה ל-clip. האפשרות clipToBounds הוסרה כי היא זהה ל-clip == true עם RectangleShape (I7ef11, b/155075735)
ממשקי API ברמה גבוהה יותר של Compose עודכנו כך שבמקום Canvas הם חושפים CanvasScope. כך הצרכנים לא צריכים לשמור אובייקטים של Paint. צרכנים שעדיין צריכים גישה ל-Canvas יכולים להשתמש בשיטה drawCanvas של התוסף, שמספקת קריאה חוזרת להנפקת פקודות ציור עם ה-Canvas הבסיסי. (I80afd)
בוצע שינוי ב-API של trailing lambda עם Constraints. עכשיו, במקום שני פרמטרים, יש לו היקף של מקבל, שבנוסף למגבלות ול-layoutDirection מספק את המאפיינים minWidth, maxWidth, minHeight ו-maxHeight ב-Dp (I91b9a, b/149979702)
השם של LayoutModifier2 שונה ל-LayoutModifier. (Id29f3)
הוסר הממשק LayoutModifier שיצא משימוש. (I2a9d6)
לפונקציות המדידה המובנות ב-Layout וב-LayoutModifier2 יש עכשיו מקלט IntrinsicMeasureScope שמספק API של שאילתות מובנות עם כיוון פריסה שמופץ באופן מרומז. (Id9945)
אפשר למדוד את רכיבי הצאצא של Layout ו-LayoutModifier עם כיוון פריסה שונה. (Ibd731)
נוסף Modifier.zIndex() חדש כדי לשלוט בסדר הציור של רכיבי הצאצא באותו פריסת הורה. השם של המאפיין elevation ב-DrawLayerModifier שונה ל-shadowElevation, והוא כבר לא שולט בסדר הציור. הסדר של הפרמטרים של DrawShadow השתנה: elevation הוא עכשיו הראשון והצורה היא השנייה עם ברירת מחדל של RectangleShape. (I20150, b/152417501)
הוסרו onSizeChange ו-onPositionChange ב-Owner. (I5c718)
נוסף Constraints2, עותק של Constraints שתומך רק בערכי Int connstraints ולא ב-IntPx. המאפיין IntPx יוסר וכל האילוצים של מספרים שלמים יניחו שהם פיקסלים כמו ב-Android.
- נוסף גם IntSize, שיחליף בסופו של דבר את IntPxSize. (I4b43a)
הפכנו את Alignment לניתן ליצירה עם ערכים שרירותיים. נוספו יישור דו-ממדי. (Ia0c05)
המאפיין alignToSiblings מקבל עכשיו Measured במקום Placeable. (I5788d)
-
- שינוי השם של ScaleFit ל-ContentScale
- העברנו את ContentScale מ-ui-graphics למודול ui-core כדי שיהיה באותו מודול כמו Alignment API.
- השם של המאפיין FillMaxDimension שונה ל-Crop
- השם FillMinDimension שונה ל-Fit
- שינינו את השם של האפשרות 'התאמה לרוחב' כדי שיהיה יותר ברור
- מקבילות של ImageView.ScaleType
- הוספנו מסמכים שמציינים שהשילוב של Crop ו-Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.CENTER_CROP, והשימוש ב-Fit עם Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.FIT_CENTER. השימוש ב-Inside עם Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.CENTER_INSIDE
תמיכה ב-RTL במגדירי ציור. (I0aaf9)
השקנו API לניפוח תצוגות Android מ-XML. פרטים נוספים זמינים בהדגמה של התכונה 'תצוגה בתהליך הכתיבה'. (I42916)
שיפור DrawModifier API:
- הגדרנו את היקף המקבל של draw() כ-ContentDrawScope
- הסרה של כל הפרמטרים ב-draw()
- ל-DrawScope יש את אותו ממשק כמו ל-CanvasScope הקודם
- ל-ContentDrawScope יש שיטה drawContent() (Ibaced, b/152919067)
נוספו positionInParent ו-boundsInParent ל-LayoutCoordinates. (Icacdd, b/152735784)
הערכים של clipToBounds ו-clipToOutline ב-DrawLayerModifier וב-drawLayer() הם עכשיו false כברירת מחדל. (I0eb8b, b/152810850)
השם של LayoutResult שונה ל-MeasureResult. (Id8c68)
נוסף LayoutModifier2, API חדש להגדרת משני פריסה. הוצא משימוש LayoutModifier (If32ac)
הוחלף Modifier plus operator בפונקציות של תוסף factory (I225e4)
נוספו מאפייני translationX/Y כדי לתמוך בהזזת רשימת התצוגה של פקודות הציור בשביל שכבה נתונה. האפשרות הזו שימושית להזזת תוכן בתגובה לאנימציות או לאירועי מגע. (I8641c)
הוספנו פרמטרים pivotX ו-pivotY ל-Layer APIs כדי לתמוך בסיבוב ושינוי גודל סביב נקודה מסוימת בשכבה (Icf7c3)
מוסיפים OnPositionedModifier ו-OnChildPositionedModifier כדי להחליף את הפונקציות OnPositioned ו-OnChildPositioned שאפשר להרכיב. (I2ec8f)
נוסף LayerModifier, משנה שמאפשר להוסיף RenderNode לפריסה. אפשר להגדיר חיתוך, אטימות, סיבוב, שינוי גודל וצללים. התכונה הזו תחליף את RepaintBoundary. (I7100d, b/150774014)
הגדרנו שהכיוון של הפריסה יועבר מהצומת של פריסת האב לצומתי הצאצא. נוסף משנה של כיוון הפריסה. (I3d955)
רכיב Stack תומך בכיווניות מימין לשמאל (Ic9e00)
תמיכה ראשונית ב-RTL בפריסת Compose (Ia5519)
התצוגות Density ו-DensityScope מוזגו לממשק אחד. במקום ambientDensity(), אפשר עכשיו להשתמש ב-DensityAmbient.current. במקום withDensity(density), רק with(density) (I11cb1)
השדה LayoutCoordinates השתנה כך שהשדה providedAlignmentLines הוא Set ולא Map, והשדה LayoutCoordinates מטמיע את האופרטור get() במקום זאת כדי לאחזר ערך. כך קל יותר לשנות ערך אחד או יותר בקבוצה בלי ליצור אוסף חדש לכל משנה. (I0245a)
התכונה position כבר לא קיימת ב-LayoutCoordinates. המאפיין position לא הגיוני כשמביאים בחשבון LayoutModifiers, rotation או scaling. במקום זאת, מפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מקואורדינטת פריסה אחת לקואורדינטת פריסה אחרת.
ב-LayoutCoordinates נעשה שימוש ב-IntPxSize במאפיין size במקום ב-PxSize. בפריסות משתמשים בגדלים של מספרים שלמים בפיקסלים, ולכן כל הגדלים של הפריסות צריכים להיות מספרים שלמים ולא ערכים של נקודה צפה. (I9367b)
שיפורים בממשק ה-API של Constraints (I0fd15)
נוצר CanvasScope API שעוטף אובייקט Canvas כדי לחשוף משטח API לציור דקלרטיבי ללא מצב. הטרנספורמציות כלולות בהיקף של המקלט שלהן, וגם נתוני הגודל מוגבלים לגבולות התואמים של התוסף. הוא לא מחייב את הצרכן לשמור אובייקט משלו של מצב הצביעה כדי להגדיר פעולות ציור.
- נוספה האפליקציה CanvasScopeSample, ואפליקציית ההדגמה עודכנה כך שתכלול הדגמה של גרפיקה הצהרתית (Ifd86d)
הוסר MaskFilter API שלא נמצא בשימוש, כי השימוש בו מוגבל והוא לא מותאם להאצת חומרה ברוב תרחישי השימוש (I54f76)
RectangleShape הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, b/154507984)
החלפנו את כל השימושים ב-Color שניתן להגדיר כ-nullable ב-API בשימושים ב-non-nullable, והשתמשנו ב-Color.Unset במקום ב-null (Iabaa7)
הוספנו פרמטר אופציונלי נוסף של rect ל-ImagePainter כדי לתמוך בציור של חלק משני של ImageAsset הבסיסי (I0ea9e)
נוסף Unset Color כדי לייצג ערך לא מוגדר בלי להשתמש ב-boxing Colors. (If901a)
נוספו שיטות ההרחבה Canvas.rotate ו-Canvas.scale כדי להשתמש בקואורדינטות אופציונליות של ציר לטרנספורמציות. ברירת המחדל היא הפינה השמאלית העליונה של התרגום הנוכחי של אזור הציור.
בנוסף, הפונקציה Canvas.rotateRad הועברה כדי להיות שיטת הרחבה לעקביות (Ibaca6)
יצרנו את PixelMap API כדי לתמוך בשאילתות של מידע על פיקסלים מ-ImageAsset. (I69ad6)
שונה השם ל-FrameworkRect/toFrameworkRectF ל-toAndroidRect/toAndroidRectF כדי להתאים לכללי מתן השמות להמרות אובייקטים בין Compose לבין ממשקי ה-API של Android Framework שעליהם הם מבוססים. גם עדכנו את המסמכים בנושא ממשקי ה-API האלה (I86337)
הוספנו את VectorPainter API כדי להחליף את subcomposition API הקיים לגרפיקה וקטורית. התוצאה של subcomposition היא אובייקט VectorPainter ולא DrawModifier. הוצאנו משימוש את רכיבי ה-DrawVector הקודמים לטובת VectorPainter.
שינינו את השם של Image(Painter) API ל-PaintBox(Painter) יצרנו רכיב Vector שאפשר להוסיף אותו לאפליקציה ומתנהג כמו הרכיב Image, אבל עם VectorAsset במקום ImageAsset (I9af9a, b/149030271)
שינינו את השם Image ל-ImageAsset כדי להבדיל טוב יותר בין נתוני התמונה לבין רכיב ה-Image שניתן להרכבה, שייעשה בו שימוש בעתיד כדי להשתתף בפריסה ובציור התוכן. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework (Id5bbd)
נוסף TextDirection.Content (I48f36)
נוסף האופרטור TextDecoration.plus (I0ad1a)
הערך
Forceהוסר מהערכים של הטיפוס בן המנייה (enum) TextDirectionAlgorithm (Icc944)השם של TextDirectionAlgorithm שונה ל-TextDirection (I75ce8)
מטמיע LongPressAndDrag לבחירת TextField. (I17919)
נוספה הפונקציה AnnotatedString.getStringAnnotations שמחזירה את כל ההערות בטווח. (I1fa00)
שם החבילה של Locale ו-LocaleList השתנה מ-androidx.ui.text ל-androidx.ui.intl (I8132c)
הסמן ב-TextField כולל אנימציית הבהוב (Id10a7)
שינוי ב-API: השם של AnnotatedString(builder: Builder) שונה ל-annotatedString(builder: Builder). (Ia6377)
שינוי ב-API: השם של AnnotatedString.Item שונה ל-AnnotatedString.Range. (I2d44d)
שינוי השם של AnnotatedString.Builder.addAnnotationString ל-addStringAnnotation. (I5059e)
עכשיו אפשר להסתיר או להציג את המקלדת הווירטואלית באמצעות SoftwareKeyboardController, שמועבר על ידי הקריאה החוזרת (callback) onTextInputStarted (I8dc44, b/151860051)
נוסף אופרטור הפלוס ל-Style (סגנון) של (Text/Paragraph/Span) (טקסט/פסקה/טווח) שמועבר לפונקציה merge() (מיזוג). (Ia1add)
הפונקציה FontWeight.lerp לא קופצת יותר. היא עדיין סוג נתונים. (I521c2)
הקונסטרוקטור FontWeight הוא עכשיו ציבורי, והוא כבר לא מחלקת נתונים. (Id6b1f)
הוספה של getLineStart, getLineEnd, getEllipsisOffset ו-getEllipsisCount ל-TextLayoutResult (Ibc801)
השם של המודול ui-text שונה ל-ui-text-core (I57dec)
הוסרה מחלקת Size שלא בשימוש, כי יש מחלקת Size משוכפלת במודול ui-geometry שנמצא בשימוש. (I1b602)
נוסף AdapterList, רכיב של רשימה עם אפשרות גלילה שמרכיב ומסדר רק את הפריטים הגלויים. בעיות ידועות כרגע כוללות את העובדה שהפריסה היא אנכית בלבד, ושהיא לא מטפלת באופן מלא בכל המקרים של שינויים ברכיבי הצאצא שלה. (Ib351b)
הוספת פרמטרים של שוליים פנימיים, גבול, צורה ורקע ל-Box (I05027, b/148147281)
תיקוני באגים
- הפונקציה להחזרת קריאה (callback) onFocusChange בשדות טקסט שונתה ל-onFocusChanged (Ida4a1)
- הוצאנו משימוש את הרכיבים VerticalScroller ו-HoriziontalScroller. אפשר להשתמש ב-ScrollableColumn וב-ScrollableRow כדי ליצור חוויה מובנית עם התנהגות ופרמטרים של Column/Row, או ב-Modifier.verticalScroll וב-Modifier.horizontalScroll ברכיב שלכם. באופן דומה, השימוש ב-ScrollerPosition הוצא משימוש לטובת ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
- השם של
runOnIdleComposeשונה לrunOnIdle(I83607) - השמות של כמה ממשקי API לבדיקות השתנו כדי שיהיו אינטואיטיביים יותר. כל ממשקי ה-API מסוג findXYZ קיבלו שם חדש: onNodeXYZ. כל ממשקי ה-API מסוג doXYZ קיבלו שם חדש: performXYZ. (I7f164)
- עכשיו אפשר להשתמש ב-Compose UI בתוך ViewGroups בלי ליצור קומפוזיציה חדשה. דוגמה אפשר לראות ב-ViewInteropDemo. (I9ab0b, b/160455080)
- נוספו הפונקציות sortWith ו-removeRange ל-MutableVector (Icccf7)
- הטמעה של נקודות אחיזה לגרירת בחירה כדי לשנות את הבחירה ב-TextField. (I27032)
- הוסר מחלקת Shader מוטבעת שעטפה את מחלקת NativeShader הצפויה. שונה השם של NativeShader ל-Shader. המחלקת המוטמעת Shader שעטפה את המחלקה לא הוסיפה ערך משמעותי לממשק ה-API והייתה מחלקה מוטמעת, ולכן צריך להשתמש ישירות במחלקה NativeShader. (I25e4d)
בוצע רפקטורינג ב-PainterModifier כך שהוא לא מספק יותר קנה מידה על סמך האילוצים שצוינו והפרמטר ContentScale. ההטמעות של Painter צריכות לשנות את קנה המידה של תוכן הציור בעצמן על סמך הגודל הנתון של DrawScope שהן מציירות לתוכו.
תוקנה בעיה שבה מפת הסיביות של מטמון VectorPainter הייתה בגודל ברירת המחדל שלה במקום בגודל שצריך לשרטוט.
העדכון של ImagePainter מאפשר לשנות את קנה המידה של התוכן במקום להסתמך על PainterModifier שיעשה זאת בשמו. (I6ba90)
הוספת פונקציה ברמה העליונה עם פרמטרים של זמן באלפיות השנייה לתיזמון אנימציה (Ie34c5)
ההערה @Untracked הוצאה משימוש. החלפה עם @ComposableContract(tracked=false) (Id211e)
השימוש ב-androidx.ui.foundation.TextFieldValue וב-androidx.ui.input.EditorValue הוצא משימוש. גם קומפוזיציות מסוג TextField, FilledTextField ו-CoreTextField שמשתמשות בסוג הזה הוצאו משימוש. במקומה, אפשר להשתמש ב-androidx.ui.input.TextFieldValue (I4066d, b/155211005)
תוקנה בעיה שבה שליחת קלט של מצביע גרמה לקריסה אם מסנני PointerInput הוסרו באמצעות subcomposition במהלך השליחה. בעיה זו כבר נפתרה. (I1f48b, b/157998762)
תוקנה בעיה שבה שליחת קלט של מצביע גרמה לקריסה אם רכיבי PointerInputFilters הוסרו באמצעות subcomposition במהלך השליחה. בעיה זו כבר נפתרה. (Iab398, b/157998762)
בוצע רפקטורינג של מחלקת Radius כדי שתהיה מחלקה מוטמעת. הוסרו שיטות ליצירת רכיבים נלווים לטובת בנאי פונקציות עם פרמטר ברירת מחדל, כדי שהרדיוס לאורך ציר ה-Y יתאים לפרמטר הרדיוס החובה לאורך ציר ה-X.
הפונקציה DrawScope.drawRoundRect עודכנה כך שהיא מקבלת פרמטר רדיוס יחיד במקום 2 ערכי float נפרדים לרדיוס לאורך ציר x וציר y (I46d1b)
הקומפוזבל Recompose כבר לא מהווה הפשטה שימושית. רוב השינויים בהרכב צריכים לקרות כתוצאה מהקצאות של MutableState. לכל דבר אחר, מומלץ להשתמש בפונקציה
invalidateכדי להפעיל יצירה מחדש של ההיקף הנוכחי. (Ifc992)החלפנו את השימוש במחלקה Px במחלקות שונות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (Iede0b)
שינוי אסטרטגיית יצירת הקוד של מהדר Compose. לפני השינוי, מהדר ה-Compose היה משנה קריאות לפונקציות שאפשר להרכיב. בעקבות השינוי הזה, אנחנו משנים את הגוף של פונקציה שאפשר להוסיף לה קומפוזיציה, ומשאירים את מיקום הקריאה ללא שינוי (ברוב המקרים).
המשמעות היא שרוב הלוגיקה שמתקשרת עם זמן הריצה של הקומפוזיציה מתרחשת בתחילת גוף הפונקציה, במקום במיקום הקריאה.
השינוי הזה אמור להיות תואם למקור בכל השימושים ב-Compose. רוב המשתמשים ב-Compose לא יצטרכו לעדכן קוד כתוצאה מהשינוי הזה.
כדי לתמוך בעבודה הזו, חתימת ה-JVM של כל הפונקציות שניתנות להרכבה השתנתה. פונקציה שאפשר להרכיב ממנה פונקציות אחרות שמקבלת פרמטר יחיד, הופכת לפונקציה שמקבלת 3 פרמטרים. הפרמטרים הנוספים הם Composer, מספר שלם מסוג 'key' ומספר שלם של מסיכת ביטים שמשמש להעברת מטא-נתונים דרך קריאות.
הפונקציה Compose הופכת עכשיו גם ארגומנטים שמוגדרים כברירת מחדל לפונקציה שאפשר להרכיב. השינוי הזה מתבצע בלי להוסיף עומס יתר של ברירת מחדל סינתטית לפונקציה עצמה, ולכן יוגדרו פחות פונקציות.
אלה שינויים התנהגותיים מכוונים שידועים לנו כתוצאה מהעדכון הזה:
- חלק מהשיחות ידלגו על שלבים שלא היו מדלגות עליהם בעבר
- ביטויים שאפשר להרכיב בביטויי ארגומנטים שמוגדרים כברירת מחדל נרשמים ומטופלים עכשיו בצורה נכונה
העבודה הזו כללה כמה אופטימיזציות: 1. התוצאה של השוואות בין פרמטרים מועברת דרך גרף הקריאות לפונקציות אחרות שאפשר להרכיב. התוצאה תהיה פחות השוואות בזמן הריצה, הקטנה של גודל טבלת המשבצות ודילוג על יותר פונקציות שאפשר להרכיב שלא דולגו בעבר. 2. פרמטרים שנקבע שהם 'סטטיים' בזמן ההידור לא מושווים יותר ולא נשמרים בזמן הריצה. כך מצמצמים את מספר ההשוואות ואת גודל טבלת המשבצות. 3. מבנה בקרת הזרימה של גוף הפונקציות משמש לצמצום מספר הקבוצות שנוצרות. כך מקטינים את הגודל של טבלת המשבצות ומפחיתים את העבודה של זמן הריצה 4. פרמטרים של שליחה וקבלה שלא נעשה בהם שימוש בפונקציות לא נכללים בקביעת האפשרות לדלג על הפונקציה אם לא נעשה בהם שימוש בגוף הפונקציה.
רוב השינויים שגורמים לבעיות תאימות היו ב-API שהקומפיילר מכוון אליו ישירות, והשימוש הרגיל ב-Compose לא יושפע: 1. הפונקציה Composer::startExpr הוסרה 2. Composer::endExpr הוסר 3. Composer::call הוצא משימוש 4. העומסים העודפים של
keyשאינם varargs הוסרו. להשתמש בגרסהvarargמעכשיו והלאה. 5. ההערה Pivotal הוצאה משימוש. אפשר להשתמש ב-keyבמקום זאת. 6. הפונקציה ScopeUpdateScope::updateScope שונתה כך שהיא מצפה ל-Function3 במקום ל-Function1 7. הפונקציות restartableFunction ו-restartableFunctionN עודכנו כך שיכללו פרמטרים נוספים של זמן קומפילציה (I60756, b/143464846)הוסרו משנים של LayoutAlign שהוצאו משימוש. (I10877)
הוסר RepaintBoundary לטובת DrawLayerModifier (I00aa4)
לרכיבים Button, FloatingActionButton ו-Clickable יש עכשיו פרמטר
enabledנפרד. השמות של חלק מהפרמטרים ב-Button השתנו או שהסדר שלהם השתנה. (I54b5a)החלפנו את ButtonStyle בפונקציות נפרדות והסרנו את העומס של הטקסט (מחרוזת). אפשר לעיין בדוגמאות מעודכנות של פרטי השימוש. (If63ab, b/146478620, b/146482131)
שינויי תוכנה שעלולים לגרום לכשל ב-API של מצב אווירה. פרטים נוספים מופיעים ביומן ובמסמכי התיעוד של
Ambient<T>(I4c7ee, b/143769776)השתנה אופן הפעולה של ברירת המחדל TextDirection כך שייקבע על ידי LayoutDirection. כלומר, אם LayoutDirection הוא RTL, ברירת המחדל TextDirection תהיה RTL. בעבר היה TextDirection.ContentOrLtr/Rtl (I4e803)
תיקון באג: כשמשקל הגופן וסגנון הגופן מוטמעים ב-AnnotatedString, הטקסט לא מוצג בצורה נכונה. (I77a9d)
הוספנו פרמטרים נפוצים ל-Text(). אם אתם יוצרים כרגע סגנון טקסט מקומי כדי להעביר מספר קטן של פרמטרים כאלה, כמו Text(style = TextStyle(textAlign = TextAlign.Center)), עכשיו אתם יכולים פשוט לספק את הפרמטרים ישירות: Text(textAlign = TextAlign.Center) (I82768)
המודול ui-android-text נקרא עכשיו ui-text-android (I68cbe)