ממשק המשתמש של כתיבת הודעות
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(לעיון בכל חבילות ה-Compose, אפשר לעיין במסמכי ההפניה של ה-API)
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 9 בספטמבר 2026 | 1.12.1 | - | - | 1.13.0-alpha03 |
מבנה
Compose הוא שילוב של 7 מזהי קבוצה ב-Maven בתוך androidx. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציות, ולכל אחת מהן יש קבוצה משלה של הערות על הגרסה.
בטבלה הזו מוסבר על הקבוצות ויש קישורים לכל קבוצה של הערות מוצר.
| קבוצה | תיאור |
|---|---|
| compose.animation | ליצור אנימציות באפליקציות Jetpack Compose כדי לשפר את חוויית המשתמש. |
| compose.compiler | שינוי של פונקציות @Composable והפעלת אופטימיזציות באמצעות פלאגין של Kotlin Compiler. |
| compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם למערכת העיצוב. |
| compose.material | אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, והיא נועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
| compose.material3 | אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design 3, הדור הבא של Material Design. Material 3 כולל רכיבים ועיצובים מעודכנים, ותכונות התאמה אישית של Material You כמו צבע דינמי. הוא מתוכנן להיות עקבי עם הסגנון החזותי וממשק המשתמש החדשים של Android 12. |
| compose.runtime | אבני הבניין הבסיסיות של מודל התכנות וניהול המצב של Compose, וזמן הריצה המרכזי של פלאגין מהדר Compose לטירגוט. |
| compose.ui | רכיבים בסיסיים של ממשק המשתמש של Compose שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, ציור וקלט. |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Maven של Google לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.compose.ui:ui:1.12.1" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.12.1") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.13
גרסה 1.13.0-alpha03
9 בספטמבר 2026
androidx.compose.ui:ui-*:1.13.0-alpha03 מופץ. גרסה 1.13.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הוצאו משימוש עומסי יתר של שדות טקסט ב-Material 2 שמקבלים פרמטרים של
value, onValueChange. צריך לבצע מיגרציה ל-overload שמשתמש ב-TextFieldStateכדי להעביר את המצב שלו. (I6b841, b/556234973) - מוסיפים API משותף כדי להשבית את
WindowInsetsRulersבאופן גלובלי לפני שנוצר שורש ה-Compose הראשון. הוצאה משימוש של Android onlyComposeView.disableWindowInsetsRulers()לטובת commonWindowInsetsRulers.disable()(Iadc8f) - הוספת פונקציות הרחבה
PolygonShape.transformedו-PolygonShape.scaledToFitב-Compose Foundation להמרת צורות פוליגון ולהתאמתן. (I3f327) - המשנה שינה את השם של הפונקציה
LineHeight.Trim.isTrimLastLineBottom()ל-LineHeight.Trim.trimsLastLineBottomואת השם של הפונקציהLineHeight.Trim.isTrimFirstLineTopל-LineHeight.Trim.trimsFirstLineTop(I02211) - הוספנו את
boundsAssertionToleranceאלPlatformTestConfigמתחת ל-ComposeUiTestConfig.platform, כך שעכשיו אפשר להגדיר את טווח הטולרנס של הצהרת הגבולות כברירת מחדל ברמת הסביבה או הכלל. (I7819d, b/545673912) - הוצאו משימוש עומסי יתר של
BasicTextFieldשמקבלים פרמטרים שלvalue, onValueChange. צריך להעביר את השימוש לBasicTextFieldoverload שמשתמש ב-TextFieldStateכדי להעביר את המצב שלו. (I636bf, b/552879150) - בדומה ל-
BasicTextField(value, onValueChange), גםVisualTransformationהוצא משימוש כי הוא נחשף רק דרך הגרסה הזו שלTextField. ההמרות הקיימות יועברו אלOutputTransformation. (I636bf, b/552879150) - נוסף
LineHeightStyle.Mode.PerLineכדי לחשב את גובה השורה בנפרד לכל שורה, כך שניתן להשתמש בגדלים שונים של גופנים באותה פסקה בלי חפיפה. (I41738) - הוצאנו משימוש את האפשרות לספק את
LazyLayoutCacheWindowו-LazyListPrefetchStrategyדרךLazyListState, ועכשיו צריך לספק אתLazyLayoutCacheWindowלפונקציה קומפוזבילית. (I71f19) - נוסף
Modifier.blur { ... }API לתמיכה בטשטוש הדרגתי (למשל, מעברי צבע ו-shaders בהתאמה אישית) (Ie6595, b/481685669) - הוספנו את Modifier.
interactionBarrier() כדי לחסום אינטראקציות של מגע, מיקוד ונגישות. (I7c1b7, b/347038246) - נוספה
isCrossWindowBlurEnabledמאפיין של תוסף ב-WindowInfoכדי לאפשר למפתחים לשלוח שאילתות ולצפות במצב הטשטוש של חלונות שונים במערכת ב-Android. (If38e2, b/538405295) - נוסף
LocalWindow CompositionLocalכדי לאפשר אחזור של אובייקטandroid.view.Windowנוכחי, וכך קל יותר לשלוט בממשקי API ברמת החלון מתוך רכיבים שניתנים להרכבה. (I4d4ff, b/221889664)
תיקוני באגים
- מופעלת
isMinimalistLocalsEnabledכברירת מחדל. (Ibb4eb, b/523295932) - הפעלנו כברירת מחדל אופטימיזציה של גובה שורה יחידה. יכול להיות שיהיה הבדל של כמה פיקסלים במדדים מסוימים של טקסט, כמו גובה או נתיב בחירה (I5575a)
-
compileSdkfor Compose libraries updated to 37.1. כדי לעשות את זה, צריך לעדכן אתcompileSdkבאופן טרנזיטיבי בכל האפליקציות והספריות שמשתמשות ב-Compose. (I05b0f) - תוקנה בעיה שבה
WindowInsetsRulersIME insets לא סומנו כאנימציה במהלך ניווט חזוי אחורה, ותוקנה בעיה שבהimePaddingלא התעדכן כשעברו בין שדות טקסט. (Id4562, b/537386261, b/539686000) - תוקנה בעיה שבה תנועות צביטה במשטח המגע לא נלקחו בחשבון כש-
ComposeViewאירחViewGroupרגיל של Android. (I80f79)
External Contribution
- תוקנה דליפת פעילות כשמנתקים
ComposeViewומחברים אותו מחדש בתוך פריים יחיד, למשל כשמסדרים אותו מחדש באמצעותremoveViewו-addView. (Ib5129, b/547675867)
גרסה 1.13.0-alpha02
26 באוגוסט 2026
androidx.compose.ui:ui-*:1.13.0-alpha02 מופץ. גרסה 1.13.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוספה מאפיין סמנטי חדש
BackgroundColorל-Modifier.background (I7eec3, b/518049030) - עכשיו אפשר ליצור
Verticesממערכים פרימיטיביים קיימים. (Ifaba8, b/496412761) -
VectorPainterישתף עכשיו משאבי גרפיקה פנימיים (ImageBitmap) כשמבצעים עיבוד של אותוImageVectorבכמה רכיבים קומפוזביליים. כך אפשר לצמצם את העלאות המיותרות של טקסטורות ואת השימוש בזיכרון, ולשפר את הביצועים בתרחישים כמו רשימות שבהן נעשה שימוש חוזר בסמלים. אפשר להשבית את האופטימיזציה הזו דרךComposeUiFlags.isVectorDrawCacheSharingEnabled. (I35639, b/331283180) - הוספת
requestFocusForChildInLocalBoundshelper (Ib1a48)
גרסה 1.13.0-alpha01
12 באוגוסט 2026
androidx.compose.ui:ui-*:1.13.0-alpha01 מופץ. גרסה 1.13.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- נוסף דגל התכונה
isVelocityTrackerMinSampleSizeFixEnabled(Ic9b51, b/533444810, b/533775739, b/523705159) - הוסרה מחלקת ההערות
ExperimentalVelocityTrackerApiשיצאה משימוש. (I6f9c6, b/483449576) - הסרת הדגל isClearNestedScrollCoroutineScopeFixEnabled (Iedfd7, b/506963276)
-
TextFieldStateשומרת עכשיו מידע על סגנון הטקסט ומשחזרת אותו. AnnotatedString.Annotation.Saverעכשיו ציבורי כדי לאפשר שמירה ושחזור של אובייקטים מסוגAnnotatedString.Annotation. (I8b533, b/135556699) - הוספנו את
TestFailurePolicyואתTestFailureHandlerב-ComposeTestConfigכדי לתמוך ב-handlers של אירועי כשל בהתאמה אישית ובהקשר של ארטיפקטים של כשל בבדיקות של ממשק המשתמש ב-Compose. (Ib1a85, b/414802953, b/291106656, b/430644575) - נוסף
SemanticsProperties.alpha כדי לחשוף את ערכי האלפא המורכבים של צמתי פריסה שנפתרו, לצורך בדיקה. (Ifddb6, b/524035059) - הוצאנו משימוש את עומסי היתר (overloads) של
createComposeRule,createAndroidComposeRuleו-createEmptyComposeRuleבחבילהui-test-junit4גרסה 2 שמקבלים פרמטרים נפרדים. משתמשים בעומסי היתר שמקבליםComposeUiTestConfigאו בעומסי היתר ללא פרמטרים, שמשתמשים ב-ComposeUiTestConfigכברירת מחדל. שימו לב שהגדרת ברירת מחדלComposeUiTestConfigמגדירה את מצב הקלט הראשוני ל-InputMode.Touchבתחילת כל בדיקה. יכול להיות שהדבר יגרום לכך שבדיקות קיימות שמצפות למצב מקלדת (InputMode.Keyboard) ייכשלו. כדי לתקן את הבדיקות המושפעות, צריך להעביר אתComposeUiTestConfig(inputMode = InputMode.Keyboard)באופן מפורש ולהסיר את כל הלוגיקה של ההגדרה הידנית למצבי קלט. לחלופין, אפשר להגדיר אתAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseכדי להשבית באופן זמני את הגדרת מצב הקלט שמוגדר כברירת מחדל בתחילת כל בדיקה, ולשמור על ההתנהגות הקודמת בזמן העברת הבדיקות. הדגל הזה יוסר בעתיד, ולכן אם רק מספר קטן של בדיקות נכשלות, מומלץ לפתור את הבעיות בבדיקות ישירות על ידי שינוי ההגדרה שלהן. (Idfb86, b/504195741) - קריאות ל-
createComposeRuleול-createAndroidComposeRuleללא ארגומנטים (לדוגמה,createComposeRule()אוcreateAndroidComposeRule<MyActivity>()) משתמשות עכשיו בערך ברירת מחדלComposeUiTestConfig, שמגדיר את מצב הקלט הראשוני ל-InputMode.Touchבתחילת כל בדיקה. כך המכשיר נמצא במצב נקי ושינויים קודמים במצב הקלט לא משפיעים על הבדיקות. עם זאת, מצב המגע החדש שמוגדר כברירת מחדל עלול לגרום לכשל בבדיקות קיימות שמצפות למצב מקלדת (InputMode.Keyboard). כדי לתקן את הבדיקות המושפעות, צריך להעביר אתComposeUiTestConfig(inputMode = InputMode.Keyboard)באופן מפורש ולהסיר את כל הלוגיקה של ההגדרה הידנית למצבי קלט. לחלופין, אפשר להגדיר אתAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseכדי להשבית באופן זמני את הגדרת מצב הקלט שמוגדר כברירת מחדל בתחילת כל בדיקה, ולשמור על ההתנהגות הקודמת בזמן העברת הבדיקות. הדגל הזה יוסר בעתיד, ולכן אם רק מספר קטן של בדיקות נכשלות, מומלץ לפתור את הבעיות בבדיקות ישירות על ידי שינוי ההגדרה שלהן. (Idc4dd, b/267253920, b/504195741) - הוספת הערות לשיטות בסיס ריקות שניתנות לביטול ב-Compose באמצעות
@EmptySuperכדי לציין שהטמעות של ביטול לא צריכות להפעיל את super. (Id407b) - הפונקציה
ExposedDropdownMenuהיא עכשיו פונקציית הרחבה ב-ExposedDropdownMenuBoxScopeבמקום חברה. יכול להיות שתצטרכו לעדכן את הקוד באמצעות ייבוא חדש. (Ie8a65, b/356452026) - הוספנו את המאפיינים
blurBehindRadius,backgroundBlurRadius,scrimAlphaו-windowShapeאלDialogProperties, וגם אתblurBehindRadiusואתscrimAlphaאלPopupProperties. מפתחים יכולים עכשיו להגדיר טשטוש רקע, טשטוש חלון ואטימות של מסך חצי שקוף ישירות בתיבות דו-שיח ובחלונות קופצים. ההגדרהwindowShapeמאפשרת לחתוך את הרקע המטושטש של חלון תיבת הדו-שיח לפי פינות מעוגלות. (I5d437) - הוסר feature flag – לחצני Compose שומרים עכשיו בצורה נכונה על מיקוד הנגישות ולא מהבהבים כשמפעילים את התכונה 'גילוי באמצעות מגע', כי אירועי ריחוף מסומנים בצורה נכונה כאירועים שטופלו. (Ib1c80)
- נוספו עומסים יתרים של מיזוג ל-
FontVariation.Settingsלמיזוג של אוספים אחרים של הגדרות או לביטול הגדרות בשורה. (I6340c) - המאפיין
variationSettingsנחשף בממשק של הגופן, ומוגדר כברירת מחדל ל-FontVariation.Emptyהחדש. בוצעה אופטימיזציה שלFontVariation.Settingsvararg constructor כדי להשתמש ב-asList()כדי להימנע מהקצאות של העתקת מערכים. (I9c22f) - הנכס
NestedScrollDispatcher.coroutineScopeעודכן כך שיחזיר בבטחה את הערךCoroutineScopeשבוטל כשהוא לא מצורף או מנותק. (I9b112, b/535290281) - הוצאו משימוש עומסי היתר
runComposeUiTest,runAndroidComposeUiTestו-AndroidComposeUiTestEnvironmentשמקבלים פרמטרים נפרדים שלeffectContext,runTestContextו-testTimeout. משתמשים בעומסי היתר שמקבליםComposeUiTestConfigאו בעומסי היתר ללא פרמטרים, שמשתמשים ב-ComposeUiTestConfigכברירת מחדל. שימו לב שהגדרת ברירת מחדלComposeUiTestConfigמגדירה את מצב הקלט הראשוני ל-InputMode.Touchבתחילת כל בדיקה. יכול להיות שהדבר יגרום לכך שבדיקות קיימות שמצפות למצב מקלדת (InputMode.Keyboard) ייכשלו. כדי לתקן את הבדיקות המושפעות, צריך להעביר אתComposeUiTestConfig(inputMode = InputMode.Keyboard)באופן מפורש ולהסיר את כל הלוגיקה של ההגדרה הידנית למצבי קלט. לחלופין, אפשר להגדיר אתAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseכדי להשבית באופן זמני את הגדרת מצב הקלט שמוגדר כברירת מחדל בתחילת כל בדיקה, ולשמור על ההתנהגות הקודמת בזמן העברת הבדיקות. הדגל הזה יוסר בעתיד, ולכן אם רק מספר קטן של בדיקות נכשלות, מומלץ לפתור את הבעיות בבדיקות ישירות על ידי שינוי ההגדרה שלהן. (Ia6d55, b/504195741) - קריאות ל-
runComposeUiTest, ל-runAndroidComposeUiTestול-AndroidComposeUiTestEnvironmentעם lambda נגרר בלבד משתמשות עכשיו ב-ComposeUiTestConfigשמוגדר כברירת מחדל, שמגדיר את מצב הקלט הראשוני ל-InputMode.Touchבתחילת כל בדיקה. כך המכשיר נמצא במצב נקי ושינויים קודמים במצב הקלט לא משפיעים על הבדיקות. עם זאת, מצב המגע החדש שמוגדר כברירת מחדל עלול לגרום לכשל בבדיקות קיימות שמצפות למצב מקלדת (InputMode.Keyboard). כדי לתקן את הבדיקות המושפעות, צריך להעביר אתComposeUiTestConfig(inputMode = InputMode.Keyboard)באופן מפורש ולהסיר את כל הלוגיקה של ההגדרה הידנית למצבי קלט. לחלופין, אפשר להגדיר אתAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseכדי להשבית באופן זמני את הגדרת מצב הקלט שמוגדר כברירת מחדל בתחילת כל בדיקה, ולשמור על ההתנהגות הקודמת בזמן העברת הבדיקות. הדגל הזה יוסר בעתיד, ולכן אם רק מספר קטן של בדיקות נכשלות, מומלץ לפתור את הבעיות בבדיקות ישירות על ידי שינוי ההגדרה שלהן. (I8c85d, b/504195741) - הוספנו את @
CheckResultל-SemanticsNodeInteraction.isDisplayed() ול-isNotDisplayed() כדי לוודא שערכי ההחזרה שלהם מאומתים, וכך למנוע כשלים שקטים בבדיקות אם המפתחים משתמשים בהם בטעות במקום בממשקי API של טענות. (I1b447, b/508178494) - הדגל
AndroidComposeUiFlag.isDelayAndroidViewsHandlerCreationEnabledיגרום לכך שהמופע שלViewGroupשמכילAndroidViews ייווצר רק כשמוסיפיםAndroidViewכדי לשפר את הביצועים שלComposeViews שלא מכיליםAndroidViews. כשהדגל מושבת, הרכיבViewGroupשמכיל אותו עובר יצירת מופע וצירוף כשהרכיבComposeViewמצורף לחלון. (I306a3, b/524283041) - הוספנו את
coroutineScopeOrNull()ב-NestedScrollDispatcher, API חלופי לגישה להיקף של קורוטינת האב של ה-dispatcher. (I18c0f) - משנים את
clearCallbacksל-runAndClearCallbacksכדי לוודא שפעולות הניקוי תמיד יבוצעו. (If4720, b/526700075) - השם של
ComposeTestConfigשונה ל-ComposeUiTestConfigוהוא הועבר מחבילת v2 לחבילת האבandroidx.compose.ui.test. (I1d2a1, b/504195741) - נוסף פרמטר
timeoutMillis(ברירת המחדל היא 2,000 אלפיות השנייה) ל-SemanticsNodeInteraction.captureToImage() כדי לאפשר הגדרה של זמן קצוב לתפוגה בהתאמה אישית בזמן ההמתנה למעבר של ציור מחדש. (Ib7d62, b/249501063) - נוספה היסטוריה לשינויים בהזנת נתונים של מצביע עקיף (Ie62d2, b/526961645)
- נוסף מאפיין סמנטי חדש,
hintText, שמייצג טקסט של רמז בשדות טקסט. המאפיין הזה משפר את התמיכה בנגישות על ידי מיפוי ל-AccessibilityNodeInfo.hintText. (Ib65da, b/448376876) CompositionLocalבוצעה אופטימיזציה של הרזולוציה על ידי פתרון דינמי מ-LocalOwnerומ-LocalAndroidComposeViewלפי דרישה, שאפשר להפעיל או להשבית באמצעותComposeUiFlags.isMinimalistLocalsEnabled. (I2bf6d)- מעכשיו יש ל-
androidx.benchmarkמינוי ל-minSdkעם מכסת אחסון של 24GB. (Ic2a85) - נוסף דגל ניסיוני
isPropagateHideFromAccessibilityToMergingChildrenEnabledל-AndroidComposeUiFlagsכדי לשלוט בהפצה שלhideFromAccessibilityלמיזוג של צאצאים. (Ie41ff, b/483506400) - העברנו את
ComposeUiTestואת ממשקי ה-API הקשורים לבדיקות (כולל וריאציות שלComposeTestRuleושלwaitUntil) מסטטוס ניסיוני לסטטוס יציב. (Iaec77, b/471148519, b/485124363) - תוקן סדר הניווט
TalkBackבקבוצות מעבר מאוחדות. במקרה הצורך, אפשר לבטל את השינוי הזה על ידי השבתתAndroidComposeUiFlags.isTraversalGroupSortingEnabled. (I5ae09, b/285043826) - מסירה את פונקציית העזרה הניסיונית והמיושנת
IndirectPointerEvent. (I05dee, b/499336763, b/501098299, b/501098376, b/513249467) - מחליפים את ה-API הניסיוני @AnimationToolingApi ב-API @RestrictTo עם ערבויות מעקב מחמירות יותר. (Ia4fd1, b/524317805)
- הוספנו את בורר
onDescendants()כדי למצוא את כל הצמתים הסמנטיים בעץ המשנה של צומת נתון. (Id6b9b, b/444588117) - ממשקי API של עזר שהוצאו משימוש
waitUntilNodeCount,waitUntilAtLeastOneExists,waitUntilExactlyOneExistsו-waitUntilDoesNotExistשלא מקבליםuseUnmergedTree. נוספו עומסים חדשים שמקבליםuseUnmergedTreeכדי לתמוך בהמתנה לצמתים בעץ הסמנטיקה שלא מוזג. (If675f, b/268432145) - הוספנו פרמטר
toleranceלאישורי גודל ומיקוםSemanticsNodeInteraction(assertWidthIsEqualTo, assertHeightIsEqualTo, assertTouchWidthIsEqualTo, assertTouchHeightIsEqualTo, assertPositionInRootIsEqualTo, assertTopPositionInRootIsEqualTo, assertLeftPositionInRootIsEqualTo) כדי לאפשר למפתחים להגדיר את סף ההשוואה, וכך לשפר את העמידות של הבדיקות בצפיפויות מסך שונות. (I3a477, b/202752461) - בדיקות Compose תומכות עכשיו בסנכרון של ה-thread הראשי. עכשיו אפשר להפעיל בבטחה ממשקי API של סנכרון (כמו
waitForIdle() ו-runOnIdle()) ולהריץ הצהרות או פעולות של Compose ישירות ב-callbacks של שרשור v-UI או השרשור הראשי. (I0247a, b/498478569) - הצגנו מודל הגדרה חדש (
ComposeTestConfig) לממשקי API של בדיקות Compose כדי לפשט את ניהול הפרמטרים ולשפר את יכולת ההרחבה. הוספנו תמיכה בהגדרת מצב הקלט (מגע/מקלדת) ישירות דרךComposeTestConfig, כדי להבטיח הגדרה ואיפוס אוטומטיים למניעת תנודות בבדיקות בגלל דליפת מצב. נוספו עומסים חדשים ל-run*ComposeUiTestול-create*ComposeRuleשמקבלים את האובייקטComposeTestConfig. (Ia3da9, b/267253920, b/504195741) - תוקנה קריסה בתצוגה המקדימה של Compose כשמשתמשים ב-
PreviewParameterProviderעם מאפייני Media Query (Posture, PointerPrecisionוכו') על ידי שינוי הייצוג הבסיסי שלהם מ-Stringל-Int. (Ic8f92, b/489939558) - נוסף פרמטר
includeInputTextל-hasTextExactlyול-assertTextEqualsכדי לאפשר התאמה מדויקת של טקסט קלט גולמי לצד טקסט חזותי. (Iee329, b/519026043)
תיקוני באגים
- עברה אופטימיזציה
SaveableStateRegistry.performSave()כדי למנוע הקצאות.HashMapנעשה שימוש ב-ScatterMapבאופן פנימי. (I7d510) - צבעי טקסט מאוכלסים ב-AccessibilityNodeInfo.ExtraRenderingInfo עבור רכיבי Text Composables. (I11c94, b/518049030)
- תוקנה בעיה שגרמה לכך שגישה אל
NestedScrollDispatcher.coroutineScopeOrNullבמהלך ניתוק של צומת פריסה הציגהIllegalStateExceptionבמקום להחזירnull. (I55634, b/533444810) - אופטימיזציה של אתחול ברמת הקובץ של
compose:uiמאפיינים של מחלקת ערכים ברמה העליונה באמצעות פונקציות גט דינמיות. (I34184) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכים
ui-unit(TextUnit) באמצעות שימוש בשיטות גישה דינמיות. (If4a99) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכים
ui-graphics(BlendMode,Colorוכו') באמצעות שימוש בפונקציות getter דינמיות. (Iaa86a) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכים
compose:ui:ui(Key,CompositingStrategyוכו') באמצעות getters דינמיים. (I1a340) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכי טקסט
compose:ui(TextAlign,TextOverflow,ImeActionוכו') באמצעות שימוש בשיטות גישה דינמיות. (I776e0) - אופטימיזציה של אתחול אובייקט נלווה של
compose:uitooling ומחלקות ערכי בדיקה (AnimatedVisibilityState, MouseButton,ScrollWheel) באמצעות שימוש ב-getters דינמיים. (I23e1b) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכי יחידה (
compose:ui,Dp,DpOffset,TextUnitTypeוכו') באמצעות getters דינמיים. (If5eb5) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכי גיאומטריה
compose:ui(Offset, Size, CornerRadius) באמצעות שימוש ב-getters דינמיים. (I3b110) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכים
compose:ui(Role,FocusDirection,PointerEventTypeוכו') באמצעות פונקציות get דינמיות. (Ie35dd) - כדי למנוע מעברים מיותרים של פריסה איטית, צריך לטפל נכון ב-
BaselineShift.None, ב-BaselineShift.Unspecifiedוב-BaselineShift(0f). (I4350c) - תוקנה בעיה שבה ערכי Dp שמכילים אפס שלילי (-0.0) מתנהגים באופן שונה בהשוואות או בבדיקות שוויון בהשוואה להשוואות או לבדיקות שוויון של נקודה צפה. (I7dbcf, b/525506543)
- ניקוי פרטי ה-API (Ia8066)
External Contribution
- ממשקי ה-API
Alignment.topRatio, Trim.isTrimFirstLineTop()ו-Trim.isTrimLastLineBottom()הם עכשיו ממשקי API ציבוריים (I84f62)
גרסה 1.12
גרסה 1.12.1
9 בספטמבר 2026
androidx.compose.ui:ui-*:1.12.1 מופץ. גרסה 1.12.1 מכילה את השמירות האלה.
גרסה 1.12.0
12 באוגוסט 2026
androidx.compose.ui:ui-*:1.12.0 מופץ. גרסה 1.12.0 מכילה את השמירות האלה.
### Downloadable Variable Fonts & Zero-Config Setup (ui-text-google-fonts)
• גופנים משתנים ואישורי GMS ללא הגדרה!
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontVariation
import androidx.compose.ui.text.googlefonts.Font
import androidx.compose.ui.text.googlefonts.GoogleFont
val fontFamily = FontFamily(
Font(
googleFont = GoogleFont("Google Sans Flex"),
// Automatically uses default GMS certificates!
variationSettings = FontVariation.Settings(
FontVariation.weight(900),
FontVariation.slant(0f)
)
)
)
──────
### תמיכה בטווח רחב של צבעים (WCG) (ui-graphics)
שימור WCG: * מרחבי צבעים שאינם sRGB (למשל, AdobeRgb, DisplayP3) שהוגדרו ב-Paint או ב-Shader נשמרים ב-API מגרסה 29 ואילך. * המערכת חוזרת ל-sRGB ברמות API ישנות יותר.
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Paint
import androidx.compose.ui.graphics.colorspace.ColorSpaces
val wcgColor = Color(0.9f, 0.5f, 0.1f, colorSpace = ColorSpaces.AdobeRgb)
val paint = Paint().apply {
color = wcgColor // Preserved on API 29+
}
──────
### מעברי צבע ברשת עם האצת חומרה (ui)
• Painter API: Modifier.meshGradient מוחלף ב-MeshGradientPainter, שמשתמש ב-Canvas.drawMesh עם האצת חומרה.
• שימוש: אפשר להשתמש ב-MeshGradientPainter בתוך Modifier.paint.
import androidx.compose.ui.draw.paint
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.MeshGradientPainter
val meshPainter = remember {
MeshGradientPainter(rows = 1, columns = 1, hasBicubicColor = true) {
setVertex(0, 0, Offset(0f, 0f), Color.Red)
setVertex(0, 1, Offset(1f, 0f), Color.Blue)
setVertex(1, 0, Offset(0f, 1f), Color.Green)
setVertex(1, 1, Offset(1f, 1f), Color.Yellow)
}
}
Box(Modifier.fillMaxSize().paint(meshPainter))
──────
### 4. שילוב של Credential Manager (ממשק משתמש)
מילוי אוטומטי: * נוסף מאפיין סמנטי של credentialRequest ברמה נמוכה לשדות טקסט ב-API מגרסה 34 ואילך.
import androidx.compose.ui.semantics.credentialRequest
import androidx.compose.ui.semantics.CredentialRequestData
import androidx.compose.ui.semantics.semantics
BasicTextField(
value = value,
onValueChange = onValueChange,
modifier = Modifier.semantics {
if (Build.VERSION.SDK_INT >= 34) {
credentialRequest = CredentialRequestData(request, callback)
}
}
)
──────
### 5. צלילי אינטראקציה אוטומטיים (ממשק משתמש)
צלילי לחיצה וניווט: * תמיכה בצלילי לחיצה וניווט שתואמים ל-Android באמצעות הגדרת צלילים בפלטפורמה. * ביטול הסכמה: אפשר להשתמש ב-wrapper SoundEffectOnInteraction כדי להשבית צלילים עבור עץ משנה.
import androidx.compose.ui.platform.SoundEffectOnInteraction
// Opt-out of sounds for everything inside
SoundEffectOnInteraction(enabled = false) {
Button(onClick = {}) {
Text("Silent Button")
}
}
### 6. שילוב של Espresso בממשקי משתמש היברידיים (ui-test)
הגבלת האינטראקציות עם Compose להיררכיית התצוגות שתואמת ל-Espresso ViewInteraction.
import androidx.compose.ui.test.junit4.onRootWithViewInteraction
import androidx.test.espresso.Espresso.onView
// Match RecyclerView row using Espresso
val specificRow = onView(allOf(withId(R.id.row), hasDescendant(withText("Item #5"))))
// Scope Compose interactions to that row
composeTestRule.onRootWithViewInteraction(specificRow)
.onNodeWithTag("fav_icon")
.performClick()
גרסה 1.12.0-rc01
29 ביולי 2026
androidx.compose.ui:ui-*:1.12.0-rc01 מופץ. גרסה 1.12.0-rc01 מכילה את השמירות האלה.
גרסה 1.12.0-beta02
1 ביולי 2026
androidx.compose.ui:ui-*:1.12.0-beta02 מופץ. גרסה 1.12.0-beta02 מכילה את השמירות האלה.
גרסה 1.12.0-beta01
17 ביוני 2026
androidx.compose.ui:ui-*:1.12.0-beta01 מופץ. גרסה 1.12.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- לא רלוונטי (העברת feature flag פנימי למפתחים) (Iaf2c4, b/368702588)
- לא רלוונטי – הועבר feature flag. (I24668, b/521811270)
- נוסף דגל תכונה ניסיוני
ComposeUiFlags.isTrackpadPinchReinterpretationEnabledכדי לפרש מחדש תנועות פתיחה וסגירה של האצבעות במשטח המגע כאירועי עכבר עם גורמי קנה מידה. (Id3477, b/478053727) - שינוי השם של פונקציית הבדיקה להפעלת אירועים של מצביעים עקיפים (I3ee35, b/509618414)
- הוספנו אופטימיזציה ל-
BasicTextול-BasicTextField, כך שהגדרת גובה שורה לטקסט עם softwrap=false מחושבת עכשיו בצורה אופטימלית יותר (I2150a)
תיקוני באגים
- הפצת מצב גלילה אופטימלי בין רכיבי משנה כדי למנוע רה-קומפוזיציה מיותרת של ממשק המשתמש. (I05830)
- הופעל feature flag ניסיוני
ComposeUiFlags.isTrackpadPinchReinterpretationEnabledכברירת מחדל. (I35ab8, b/478053727) - תוקנה בעיה בניתוח של משאב וקטורי שאפשר לצייר, שבה התעלמו מאלמנטים הורים מסוג
<clip-path>אם הם הכילו אלמנטים מוטמעים מסוג<group>. (Id4ea9, b/474530439) - נוספה תמיכה בכללים סטנדרטיים של JUnit 4 לבדיקות חוזרות ב-
AndroidComposeTestRuleעל ידי יצירה מחדש של סביבת הבדיקה הפנימית והיקף שגרת ההמשך (coroutine) בין ניסיונות ההרצה. (Iafaa7, b/235383900)
External Contribution
- הוספת ממשק
AndroidClipboardלבדיקה כדי לספק דרך לזיוף הטמעה של לוח (Ie4d72, b/512924975) - הוספת תאימות לדורות קודמים ל
TextAttributeוריאציות שלcommitText()ושלsetComposingText(). ב-SDK בגרסה 37 ומעלה, שירותי הנגישות יוכלו להודיע אם נבחר טקסט חלופי להצעה. ב-SDK<37, לא תהיה השפעה על משוב קולי (כלומר, על אופן הפעולה הקיים). (I90e3d, b/439879822)
גרסה 1.12.0-alpha03
19 במאי 2026
androidx.compose.ui:ui-*:1.12.0-alpha03 מופץ. גרסה 1.12.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- נוספו מאפיין
credentialRequestSemantics חדש ועוזרCredentialRequestDataב-API 34 ומעלה, כדי לאפשר שדות טקסט של Jetpack Compose להשתלב עם Credential Manager של Android באמצעות מסגרת המילוי האוטומטי. (Ida2bf, b/488446455) - נוספה פונקציית יצירה
ParagraphIntrinsicsשמקבלת את הארגומנטsoftWrapבין היתר. באופן פנימי, אנחנו יכולים להשתמש בזה כאות לכך שהטקסט מוצג כשורה אחת ולבצע אופטימיזציות מסוימות. (I66ca4, b/485495112) - נוספה תמיכה בצלילי אינטראקציה אוטומטיים (קליקים וניווט במיקוד) לרכיבי Compose, עם
SoundEffectOnInteractionComposable חדש שמאפשר ביטול הסכמה. שימו לב: כתוצאה מהשינוי הזה, עכשיו צריך להפעיל את מאזיני הקליקים הסמנטיים מה-thread הראשי, וזה עשוי להשפיע על מספר קטן של תרחישי בדיקה. (I78f65) - הפונקציה
Fontשל היצרן עברה ייצוב, והיא פועלת במשךvariationSettings. (I183f2) - המאפיין
ResourceFontloadingStrategyוה-methodcopyעברו ייצוב. (I40d84) - ממשקי ה-API של
InterceptPlatformTextInputושלPlatformTextInputInterceptorעברו ייצוב. (Id2784) - כדי לשפר את ההפרדה בין הפלטפורמות, הפונקציות
registerIdlingResourceו-unregisterIdlingResourceהועברו לפונקציות של תוספים, ולכן יכול להיות שתצטרכו לעדכן את הייבוא. (I21d3d, b/471148519) - הוספנו את
runWithoutImplicitWaitל-ComposeTestRuleואתComposeUiTestל-ComposeUiTestכדי לשפר את ביצועי הבדיקה במהלך בדיקת המצב. ממשק ה-API הזה מאפשר להריץ בלוק קוד עם השבתה של סנכרון מרומז, וכך להימנע מהתקורה של סנכרונים חוזרים לכל שאילתת צומת. כך הבדיקות מתבצעות הרבה יותר מהר, במיוחד בדיקות שכוללות מעבר ידני בין פריים לפריים ודגימה של כמה מאפיינים, כמו בדיקות של אנימציות. (Ie00e9, b/490270394) - עכשיו אפשר להחיל את ההערה
@PreviewWrapperעל מחלקות של הערותMultiPreview, וכך מפתחים יכולים ליצור הגדרות תצוגה מקדימה שאפשר לעשות בהן שימוש חוזר ושעטופות מראש. (I8ae66, b/511170361) - הוספנו את
MeshGradientPainterלעיבוד של מעברי צבע ברשת.Modifier.meshGradientהוסר, צריך להשתמש ב-MeshGradientPainterעםModifier.paintבמקום זאת. הסרטוןMeshGradientRendererהוא עכשיו פנימי. (I2d170, b/508110246) - עכשיו אפשר לספק את הכללים בנפרד באמצעות פונקציית lambda שמחזירה תשובה אם אפשר לספק את הכלל, ופונקציית lambda נפרדת שמספקת את הערך של הכלל. ה-lambda
isRulerProvidedלא נצפה, והוא צריך להיות אופטימי לגבי האפשרות לספק ערך. פונקציית ה-lambdarulerProviderנצפית, כך שאם יש שינוי בערך כלשהו, הערך של הסרגל וכל הקוראים של הסרגל יעודכנו. (Ie9089) - ב-Style API הניסיוני, הוספנו תמיכה ביצירת סוגי סגנונות מותאמים אישית שיכולים לכלול היקפי סגנון מותאמים אישית. כך אפשר להגדיר תת-קבוצה של המאפיינים שניתנים להגדרה על ידי סגנון (למשל, להסיר לחלוטין את שכבת הגרפיקה או מאפייני הטקסט), וגם להרחיב את היקף הפעולה באופן עצמאי מסגנונות אחרים (למשל, לתמוך רק בתחביר
playing { }ברכיבMediaPlayer). השינוי הזה פוגע בתאימות בינארית ובתאימות למקור. השינוי העיקרי שגורם לאי-תאימות למקור הוא שפונקציות העזר ב-StyleScopeעברו להיות פונקציות הרחבה (לדוגמה,fun contentProperty(all: Dp)היא עכשיו פונקציית הרחבה). כדי שהקוד שקורא לשיטות האלה יקומפל בצורה תקינה, צריך לייבא את פונקציות התוסף הנדרשות או לייבא את כל הסמלים מ-androidx.compose.foundation.styles. (I1ef27, b/493676648) - מוסיפים את
updatePointerBy()עם ארגומנט ברירת המחדל למזהה המצביע. (I99f30, b/502001776) -
DeferredTargetAnimationis no longer experimental, please remove opt-in." into androidx-main - נוסף דגל
isClearNestedScrollCoroutineScopeFixEnabledכדי לשלוט בתיקון. (Ibd394, b/505343254) -
DeferredTargetAnimationכבר לא ניסיוני, צריך להסיר את ההסכמה. (I1e4ae, b/500030165) - סוג enum חדש לתמיכה בטריגרים בכלי ממשק המשתמש (I6e198, b/478807872)
- מותר ליצור את
ComposeViewContextבלי לצרף את התצוגה של קובץ העזר. עדיין נדרש לצרף את תצוגת ההפניה לפני הקריאה ל-setContent(). (Id0952)
תיקוני באגים
- תוקנה בעיה שבה
focusRestorerלא משחזר את המיקוד בצורה תקינה כשמתבצעות כמה קריאות שמירה לאותו פריסה (I10277, b/505371994) - שיפור ביצועים קודם גרם לתופעת לוואי שבה לא ניתן למדוד מודעות
ComposeViewsשלא צורפו. השינוי הזה מאפשר להשתמש בשיטה הזו בלי להחזיר את בעיית הביצועים. (I9b2c5, b/508650647) - היצירה מחדש מתבצעת עכשיו בשינוי
ComposeViewContextכדי לתמוך בגישה מהירה יותר אלComposeViewContext. (I3b3a8, b/487364963) - האפשרות הזו מאפשרת ל-Compose להגדיר צבעים שאינם sRGB ב-paint וב-shader ב-Android, וכך לשמור על מגוון רחב של צבעים על ידי מיפוי נכון של מרחבי הצבעים של Compose למקבילות בפלטפורמה. מרחבי צבעים שלא נתמכים בפעולות רינדור בפלטפורמה (לדוגמה, CIE XYZ, CIE Lab, OkLab) או שלא זמינים ברמת ה-API הנוכחית, יחזרו בבטחה למרחב הצבעים Srgb. (I3efb5, b/388511109)
External Contribution
- האפשרות
androidx.compose.ui.platform.NativeClipboardtypealias הוצאה משימוש. במקומה, צריך להשתמש ישירות ב-android.content.ClipboardManager(Ibc611) - החלפת נכס
Clipboard.nativeClipboardבתוסףClipboard.nativeClipboardManagerכדי למנוע חשיפה של סוג הפלטפורמה ל-commonMainsourceset דרךtypealias(Ibc611)
גרסה 1.12.0-alpha02
6 במאי 2026
androidx.compose.ui:ui-*:1.12.0-alpha02 מופץ. גרסה 1.12.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את
MeshGradientModifier. (Ia9a08, b/455752719) - מסירה קריאות חוזרות (callback) של רישום באגים במילוי אוטומטי מובנה. אפשר להשיג את אותה פונקציונליות באמצעות רישום ביומן מ-
AutofillManager.AutofillCallback. (I631c7, b/502279690) - תמיכה בהגדרות של וריאציות בגופנים שאפשר להוריד (Ic25c7, b/496278020)
- הפונקציות
mediaQueryו-derivedMediaQueryעודכנו כך שיחזירו סוג גנרי במקוםBoolean, מה שמאפשר שימוש גמיש יותר כשיוצרים ממשקי משתמש מותאמים. (I93830, b/498698350)
גרסה 1.12.0-alpha01
22 באפריל 2026
androidx.compose.ui:ui-*:1.12.0-alpha01 מופץ. גרסה 1.12.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הסרת דגל התכונה
ComposeUiFlags.isIndirectPointerNavigationGestureDetectorEnabled(I82be3, b/455601135) - הפונקציה
mediaQueryהוגדרה כפונקציה מוטמעת (Ie9457, b/498698350) - התכונה
ComposeViewContextיצאה משלב הניסוי וההערהExperimentalComposeViewContextApiהוסרה (I32eca) -
ComposeView.disableWindowInsetsRulers()כבר לא ניסיוני (Ia81a5) - נוסף API
hasPendingWork()כדי לאפשר בדיקה פסיבית אם יש כרגע עבודה בהמתנה בממשק המשתמש של כלי הכתיבה, בלי להפעיל המתנה או להקדים את השעון. האפשרות הזו שימושית לבדיקות ידניות של השעון, כדי לקבוע מתי אנימציות או פעולות אחרות ברקע הסתיימו. (Ic54e3) - הוסר דגל התכונה
AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnabled(I7fd25, b/491111451) - הוסר דגל התכונה
AndroidComposeUiFlags.isSharedFontEnabled(I2cebe, b/479898293) - מוסיף עוד
KeyboardTypeאפשרויות להשלמת קבוצת האפשרויות הנתמכות במקלדת ב-Android, כולל תאריך, שעה, תאריך ושעה, מספר עשרוני עם סימן ועוד. (I3713e, b/202353328) - הוסר הדגל
AndroidComposeUiFlags.isSharedHapticsEnabled(I6a1d4, b/479895628) - הוסר הדגל
AndroidComposeUiFlags.isSharedClipboardManagerEnabled(I41e3c, b/479895130) - הוסרה ההגדרה
AndroidComposeUiFlags.isSharedViewConfigurationEnabled(I6d3aa, b/479890645) - הוסר דגל התכונה
AndroidComposeUiFlags.isSharedDrawingEnabled. (I27912, b/479849019) - הוסר דגל התכונה
AndroidComposeUiFlags.isSharedAccessibilityManagerEnabled(I6b726, b/479845566) - הסרת הדגל
AndroidComposeUiFlags.isSharedWindowInfoEnabled(Ife9a9, b/479837249) - מסירים את הדגל
AndroidComposeUiFlags.isSharedComposeViewContextEnabled. (Ic522a, b/479834257) - הוספת הגדרות של וריאציות כדי להתאים אישית גופנים משתנים שאפשר להוריד (Ifdc93, b/223262013)
- הוספת הגדרות של וריאציות כדי להתאים אישית גופנים משתנים שאפשר להוריד (I390af, b/223262013)
- הסרת דגל
isTraversableDelegatesFixEnabled(Ia7dfe, b/485962494) - הוספנו את
runWhenIdleואת הגרסה שלו להשהיהawaitAndRunWhenIdleב-ComposeTestRuleוב-ComposeUiTestכדי לשפר את ביצועי הבדיקה ואת יציבות המצב. ממשקי ה-API האלה מסנכרנים את ממשק המשתמש פעם אחת, ואז מריצים בלוק קוד בלי התקורה של סנכרונים חוזרים לכל פעולה. כתוצאה מכך, הביצוע של הבדיקות מהיר יותר באופן משמעותי ופחות לא יציב, במיוחד בבדיקות שכוללות דגימה של הרבה מאפיינים, כמו בבדיקות של אנימציות. (Iabf66, b/490270394) - הוספת
LayerOutsetsל-GraphicsLayerוגם ל-Modifier.graphicsLayer, שאפשר להשתמש בהם כדי להגדיל את הגבולות החזותיים של השכבה מעבר לגודל שנמדד. אפשר להשתמש בזה כדי להימנע מההתנהגות המרומזת שלclipToBoundsכשמקדמים את השכבה למאגר Offscreen. (Ic1189) - הרישום של אירועי קלט במילוי אוטומטי מושבת כברירת מחדל. הם מופעלים עכשיו על ידי התקשרות אל
ComposeView.setAutofillDebugEnabled. (I5b430, b/487947860) - הוחלף VelocityTracker במימוש שסופק על ידי Android Framework (ניתן להגדרה באמצעות
AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled). (Ibc7e2, b/359962905) - כשהערך של
AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnabledהוא True, הפריסה של תצוגות צאצא תמיד נקראת אחרי המדידה במהלך מעבר פריסה. הפונקציה Compose לא תמיד מציגה את הילד אחרי המדידה, אבל Views דורשת את זה לניהול תקין של המצב. (Ib4fe9, b/430974758) - הוספת
isVirtualאלLayoutInfo(I3e5cd, b/494243978) - הוסר הסימון
isGraphicsLayerShapeSemanticsEnabled. (I44be0, b/455600081) - נוסף Font API חדש שאפשר להשתמש בו להורדה בלי להוסיף אישורי גופנים לבסיס הקוד באופן ידני. (I30b86, b/479454159)
- נוספה האפשרות
onRootWithViewInteractionלצמצם את החיפושים הסמנטיים ב-Compose לתצוגות ספציפיות ב-Android . כך אפשר לפשט את הבדיקה של ממשקי משתמש היברידיים, כמוRecyclerViews, בלי שיהיה צורך בתגי בדיקה ייחודיים בקוד הייצור . (Ic02c4, b/175226753)
תיקוני באגים
- ה-API
captureToImage()מאפשר עכשיו לצלם חלון קופץ או תיבת דו-שיח יחד עם רכיב העוגן שלהם במפת סיביות אחת. (I9b83a, b/443137545) - עדכון של Compose
compileSdkל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. (Id45cd, b/413674743) - הגדרת
ContentDataType.Noneבסמנטיקה מונעת עכשיו את שליחת האירועים של המילוי האוטומטי על ידי התכונה 'יצירת טקסט'. כך אפשר למנוע עלויות אתחול שקשורות לבקשות לשירותי מילוי אוטומטי. (I8fbda, b/487947860)
גרסה 1.11
גרסה 1.11.4
1 ביולי 2026
androidx.compose.ui:ui-*:1.11.4 מופץ. גרסה 1.11.4 מכילה את השמירות האלה.
גרסה 1.11.3
17 ביוני 2026
androidx.compose.ui:ui-*:1.11.3 מופץ. גרסה 1.11.3 מכילה את השמירות האלה.
גרסה 1.11.2
19 במאי 2026
androidx.compose.ui:ui-*:1.11.2 מופץ. גרסה 1.11.2 מכילה את השמירות האלה.
גרסה 1.11.1
6 במאי 2026
androidx.compose.ui:ui-*:1.11.1 מופץ. גרסה 1.11.1 מכילה את השמירות האלה.
גרסה 1.11.0
22 באפריל 2026
androidx.compose.ui:ui-*:1.11.0 מופץ. גרסה 1.11.0 מכילה את השמירות האלה.
גרסה 1.11.0-rc01
8 באפריל 2026
androidx.compose.ui:ui-*:1.11.0-rc01 מופץ. גרסה 1.11.0-rc01 מכילה את השמירות האלה.
גרסה 1.11.0-beta02
25 במרץ 2026
androidx.compose.ui:ui-*:1.11.0-beta02 מופץ. גרסה 1.11.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- שינוי השם של
PreviewWrapperAPI כדי לשמור על עקביות (I62659, b/490085948) -
ComposeViewContextמאפשר ל-ComposeViewלכתוב בלי להיות מצורף להיררכיית התצוגה. משתמשים ב-AbstractComposeView.createComposition(composeViewContext)כדי להתחיל לכתוב את ההודעה בלי שקובץ ה-ComposeViewיצורף. (I46e6f) - נוספה
delayMillisלממשקי API של בדיקת משטח מגע עבורpanEndו-scaleEnd(If80fe)
תיקוני באגים
-
Clipboardו-ClipboardManagerמבקשים עכשיו את שירות המערכת בהפעלת ה-method הראשונה (If0016, b/487947860) - מצב הפוקוס ישוחזר בצורה תקינה בתוך מאגרי מידע שמושהים עד שהם נדרשים, שבהם נעשה שימוש חוזר בצמתים ובקבוצות של פוקוס (I18d36, b/481564275)
- החלון הקופץ עם
clippingEnabled = falseמוצג עכשיו בצורה נכונה, עם גבולות מלאים של החלון, מקצה לקצה (I206408, b/327017902)
גרסה 1.11.0-beta01
11 במרץ 2026
androidx.compose.ui:ui-*:1.11.0-beta01 מופץ. גרסה 1.11.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה ב-
windowTokenמותאם אישית לתיבת הדו-שיח של Jetpack Compose (Ic7728) - נוספה תמיכה ב-
windowTokenו-windowTypeבהתאמה אישית בחלונות קופצים של Jetpack Compose. (I0a04f) - הצגת הממשק של
PreviewWrapperוספק ההערות. כך מפתחים יכולים להוסיף בקלות התנהגות מותאמת אישית לתצוגות המקדימות שלהם. (I29f54, b/484306729) - אם הערך של
AndroidComposeUiFlags.isSharedFontEnabledהוא true, אפשר לשתף מופעים של אובייקטים שקשורים לגופן, כמוFontLoaderו-FontFamilyResolver, בין מופעים שלComposeViewבתוךComposeViewContext. (I403e8) - מעבדי סמנטיקה של כתיבת הודעות ישתמשו ב-view.handler במקום ב-
mainLooper, וכך יימנעו קריסות בתצוגות שמשתמשות ב-handlers שאינם ראשיים. (I671c3, b/486235925) - נוסף דגל
isSkipNonImportantSemanticsNodesHitTestEnabledששומר על תיקון באג בבדיקת פגיעה בסמנטיקה, שמשפיע על התכונה 'הקשה להפעלה' שלTalkBack. (I2933f, b/481011169, b/454377558, b/461360154) - נוספה תמיכה בהצגת תיבות דו-שיח של Jetpack Compose משירותי Android. על ידי ציון סוג חלון מותאם אישית באמצעות הפרמטר החדש
windowTypeב-DialogProperties, מפתחים יכולים עכשיו להציג תיבות דו-שיח בחלונות שכבת-על. (I7c504, b/478214962) - שינוי השם של המאפיינים
PointerInputChangeו-HistoricalChangeכדי לאחזר את ערכי ההתאמה וההזזה. (I989a8, b/481333653) - הוספנו עוד פונקציונליות לממשקי API לבדיקת משטחי מגע, כדי לדמות עקומות וקלט שונים למחוות במשטח מגע. (I290fb, b/473603145, b/479213358)
- פיצול של
PointerEventType.Panהחדש ל-PointerEventType.PanStart, PointerEventType.PanMoveו-PointerEventType.PanEnd. באופן דומה,PointerEventType.Scaleמפולח ל-PointerEventType.ScaleStart, PointerEventType.ScaleChangeו-PointerEventType.ScaleEnd. הפיצול הזה מאפשר להעביר מידע נוסף על ההתחלה והסיום של מחוות הזזה ושינוי גודל שפלטפורמת Compose מפרשת, וכך מאפשר למטפלים בקלט של מצביע ב-Compose להשתמש במידע הזה כדי לזהות אירועים בצורה מתאימה, ובמיוחד לדעת מתי מסתיימת הזזה או שינוי גודל. (I4daf6, b/479285849, b/481333653) - אם הערך של
AndroidComposeUiFlags.isSharedHapticsEnabledהוא true, ComposeViewContextמכיל את מופע בקר המישוב המשותף. (Icd79a) - הוספנו ממשקי API ניסיוניים
mediaQuery,derivedMediaQueryו-UiMediaScope(מסומנים ב-@ExperimentalMediaQueryApi) כדי לאפשר פיתוח הצהרתי של ממשק משתמש דינמי על סמך מידות החלון, המיקום שלו ויכולות אחרות של המכשיר והסביבה. (I2d21e, b/479800750)
תיקוני באגים
- תוקנה בעיה שבה התגים
Modifier.dropShadowו-Modifier.innerShadowעם היקף חסימה לא נמשכו מחדש כשהפרמטר Shape השתנה באופן דינמי. (Ida262, b/486202623) - תוקנה באג שגורם לתוכן מוטמע להיות ממוקם בצורה שגויה בפריסות מימין לשמאל עם טקסט משמאל לימין, או בפריסות משמאל לימין עם טקסט מימין לשמאל. (I09789)
- תוקן באג שגרם לכך שכשנעשה שימוש ב-
ComposeViewבמעבר בין רכיבים, נוצר חריג. (Ia425f, b/484100557)
External Contribution
- מוסיפים מאפיין
InputTextSuggestionStateכדי לזהות את המצבים השונים שבהם יכול להיות קלט תעתיק כשהצעות להחלפת טקסט זמינות. בנוסף, נוסףTextCompositionRangeכדי לעקוב אחרי טווח ההרכבה של הטקסט הנוכחי בתעתיק; ערך null מציין שאין הרכבה במקום. (I7a67f, b/476472318)
גרסה 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) - העברנו את דגל התכונה הניסיונית
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
- המידע של
WindowInfoיועבר על ידיAndroidComposeUiFlags.isSharedWindowInfoEnabledאל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) - הוספת תמיכה במקשי תנועה
NumPad(I1ff12)
גרסה 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 ו-Android RGB. (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 שהוצאו משימוש. עם זאת, מומלץ מאוד לעבור לגרסאות 2 של ממשקי ה-API כדי לשלוט טוב יותר בהרצת קורוטינות. (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
- הוסר הדגל של ממשק המשתמש
isSemanticAutofillEnabledכי המילוי הסמנטי האוטומטי הופעל כברירת מחדל. (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, שנדרש כשצריך קריאה חוזרת שלonRemeasured(). במקום להשתמש ב-LayoutAwareModifierNodeכללי יותר כשלא צריך קריאות חוזרות אחרות, צריך להשתמש בממשק הזה ישירות. (If6fb0)
גרסה 1.10
גרסה 1.10.6
25 במרץ 2026
androidx.compose.ui:ui-*:1.10.6 מופץ. גרסה 1.10.6 מכילה את השמירות האלה.
גרסה 1.10.5
11 במרץ 2026
androidx.compose.ui:ui-*:1.10.5 מופץ. גרסה 1.10.5 מכילה את השמירות האלה.
גרסה 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) עם הערך false כש-
minDurationMsלא אפס.visibilityChanged(2ac08b8, b/456384555) - לא מתבצעת קריאה חוזרת (callback) ל-
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)
- נוסף דגל תכונה
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)
- תיקון של הצללת שמות של משאבי מילוי אוטומטי בין מודולים של ממשק משתמש ומודולים בסיסיים (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. הוא מספק קריאה חוזרת שנקראת כשהפריסה שהוצבה קודם לא מוצבת יותר. (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) - הוספנו עקבות מחסנית של Compose שמבוססים על מפתח קבוצה, שמופעלים כברירת מחדל בכל האפליקציות שעברו מיניפיקציה. מיפוי ה-proguard של העקבות האלה ייווצר על ידי תוסף Gradle של מהדר Compose החל מ-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. בעבר, הוגדר (ועדיין מוגדר) ה-framework לבדיקה באמצעות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יש עכשיו ערך לא מוגדר כדי למנוע חלוקה לקטגוריות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) - תוקן באג בצבע כשמשתמשים בפריט גרפי וקטורי שניתן לשרטוט שמשתמש בצבע אחד, והערך של
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לא קיבלו קריאות חוזרות (callback) אם לפריסה שהועברה היו יותר מ-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()כדי למקם רכיבי child. (Ia05ac9) - במקרים מיוחדים כמו הסרה של שכבה או של משנה שכבה, או עדכון של מאפייני שכבה, צריך להודיע על כך בצורה נכונה ב-
Modifier.onVisibilityChanged()וב-onLayoutRectChanged(). (Ia05ac)
גרסה 1.9.1
10 בספטמבר 2025
androidx.compose.ui:ui-*:1.9.1 מופץ. גרסה 1.9.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג בצבע כשמשתמשים בפריט גרפי וקטורי שניתן לשרטוט שמשתמש בצבע אחד, והערך של
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. כדי להריץ בדיקות של Compose lint בתוך סביבת הפיתוח המשולבת (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
- תוקנה בעיה שגרמה להיעלמות של פריטים ב-
dragAndDropSourceLazyListבזמן גלילה. תודה, ויקטור רנדינה! (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) - שינוי החבילה של 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לא צויר אחרי שהוא הופעל בזמן שאפליקציית Compose פעלה ברקע. (Ifd12a)
גרסה 1.9.0-alpha03
20 במאי 2025
androidx.compose.ui:ui-*:1.9.0-alpha03 מופץ. גרסה 1.9.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הדגל
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabledגורם לכך שאם אי אפשר להתמקד בשום דבר ב-ComposeView, הערך של rect מוגדר כ-Empty. כך לא ניתן לבחור את התצוגה למיקוד באמצעות חיפוש מיקוד. זה חשוב במיוחד כששיטת קלט (IME) כוללת אפשרות 'הבא' והיא מנסה להתמקד ב-ComposeViewאבלrequestFocus()נכשלת. (Ibd0e2, b/369256395) - הוספת הדגל
isNestedScrollDispatcherNodeFixEnabled. (I0d24a) - שינוי השם של
DialogProperties'dialogContentTitleל-windowTitle(Ibd27b) - הוספנו את משני ה-
Modifier.onFirstVisibleו-Modifier.onVisibilityChanged, שהם משנים ברמה גבוהה שמבוססים עלModifier.onLayoutRectChanged. המשנים האלה נוצרו במיוחד כדי לטפל בהרבה דרישות נפוצות של אפליקציות, כמו רישום חשיפות, הפעלה אוטומטית של סרטונים וכו'. הם נוצרו תוך התחשבות בביצועים, כך שאפשר להשתמש בהם בתרחישים קריטיים שמבוססים על רשימות בלי לסכן את ביצועי הגלילה. בנוסף לממשקי ה-API של שינוי המחירים, הוספנו עוד ממשקי APIRelativeLayoutBoundsכדי לתמוך בתרחישי השימוש האלה, וכדי להקל על מפתחים ליצור בקלות שינויים מותאמים אישית דומים שמתאימים בדיוק לתרחיש השימוש שלהם. (I759b8) - כדי להתכונן לפיתוח עתידי של התכונה הזו, צריך לשנות את הערך
setDiagnosticStackTraceEnabledל-experimental. (I11db3) - השקת
Modifier.scrollable2D,Scrollable2DStateוממשקי API נלווים ליצירת מצב. הוספנו גם פונקציות נפוצות להרחבת הגלילה. (Ic61c8, b/214410040) - אי אפשר להשוות ישירות בין ערכי צבע של Compose ב-64 ביט לבין ערכי צבע של Android
ColorLongsכי מזהי מרחבי הצבעים לא מסודרים בחלק ממרחבי הצבעים. כדי להמיר בין מרחבי צבעים של 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לשיטות. הוסר הפרמטר name מ-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) - נוספה האפשרות להגדיר קצב פריימים מועדף או קטגוריית קצב פריימים שבהם צריך לבצע את הרינדור של הרכיב (Ie5201)
- הצגת מודעות מותאמות לרשת המדיה
MotionEventב-Android. (I17286) - הוספה של
getChecked() + setChecked(int), הוצאה משימוש שלisChecked + setChecked(boolean)(Iaac9d) - המתאם
graphicsLayerמקבל עכשיוblendModeו-colorFilter(Iab0e6) - נוספה
LocalResourcesקומפוזיציה מקומית למשאבי שאילתה. קריאה ל-LocalResources.currentתגרום להרכבה מחדש כשההגדרה תשתנה, כך שקריאות לממשקי API כמוstringResource()יחזירו ערכים מעודכנים. (I50c13, b/274786917) - חשיפת API ניסיוני לרכיבי Composables לטיפול באירועי מגע עקיפים (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) - עדכנו את ui-tooling Devices API כך שיכלול מכשירים חדשים יותר. (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 מכילה את השמירות האלה.
תיקוני באגים
- ה-flag של
isGetFocusedRectReturnEmptyEnabledהוסר עכשיו אחרי שהתכונה אומתה באופן מלא. (Ife722) - הדגל
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabledגורם לכך שאם אין שום דבר שאפשר להתמקד בו ב-ComposeView, המערכת מגדירה את המלבן לערך ריק. כך לא ניתן לבחור את התצוגה שרוצים להתמקד בה באמצעות חיפוש המיקוד. זה חשוב במיוחד כששיטת קלט (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 של כלי הכתיבה כוללת תמיכה חדשה במילוי אוטומטי סמנטי. מוודאים שגרסאות ה-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. הוספנו API שלrequestFocus(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 מכילה את השמירות האלה.
תכונות חדשות
- נוסף בדיקת לינט כדי להזהיר מפני קריאות ל-
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לרישום של listener לשינויים בפריסה הגלובלית. (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 use הוא מסוג Color. (I0e05b) - השארת
UrlAnnotationשהוצא משימוש והשיטות שלו מסומנים כניסיוניים. (Ic0021)
תיקוני באגים
- תוקנה קריסת
IndexOutOfBoundsExceptionבמהלך שימוש ב-LinkAnnotationבתוךBasicTextאו Text composable (be7605, b/374115892) - תוקנה בעיה שבה קווי האינדיקטור לא נחתכו בשדות טקסט מלאים עם צורה מותאמת אישית. (I4f87f, b/380704151)
- תוקנה בעיה שגרמה לכך שרקעים לא נכללו בצילומי מסך ארוכים. (I4d57a)
- הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן מסוג type-use. מפתחי 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מממשק ניהול המילוי האוטומטי. התכונה עדיין בשלבי פיתוח, והיא מיועדת לגרסה הזו, אבל אנחנו לא רוצים להשיק את @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 מכילה את השמירות האלה.
תכונות חדשות
בגרסה הזו, מילוי אוטומטי מוסתר מאחורי feature flag. אנחנו עובדים על שיפור הביצועים, ונשמח לקבל משוב מוקדם על ממשקי ה-API. אנחנו צופים שהממשקי ה-API יתפתחו לפני שהם יהפכו ליציבים, על סמך משוב.
- כדי להפעיל את המילוי האוטומטי, צריך להגדיר את
ComposeUiFlags.isSemanticAutofillEnabledכ-true ב-onCreateולהשתמש בגרסה האחרונה של Compose Snapshot. - הגרסה הזו של המילוי האוטומטי תומכת בשמירה ידנית של פרטי כניסה, באמצעות ההצעה לסיסמה חזקה ובאמצעות ניווט. הוא תומך גם במילוי כששדה שאפשר למלא אוטומטית מקבל פוקוס או כשמפעילים את המילוי האוטומטי דרך סרגל הכלים של הטקסט ברכיבי טקסט. הרכיב יודגש כדי לציין שההשלמה האוטומטית הסתיימה.
שינויים ב-API
- שינוי הממשק של המילוי האוטומטי כך שיתאים למבנה
expect/actual. (I22dce) - הוספנו את
CompositionLocalשאפשר להשתמש בו כדי לשנות את הגוון של ההדגשה במילוי אוטומטי. (I32092) - הוספנו את
Modifier.onRectChangedAPI, שהוא API שמאפשר להירשם למיקום ולגודל שלLayoutNodeביחס לשורש, לחלון או למסך. ה-API פותר הרבה תרחישי שימוש שהמשנהonGloballyPositionedהקיים פותר, אבל הוא עושה את זה עם הרבה פחות תקורה. ה-API כולל גם אמצעים לביטול כפילויות ולויסות נתונים (throttling) של הקריאה החוזרת בהתאם לדרישות של תרחיש השימוש. (Id28c7, b/372765423, b/372757007, b/372994338) - ההרחבה של מנהל המילוי האוטומטי כוללת ממשקי API של
commit()ושלcancel()שעוזרים למשתמשים לשמור פרטי כניסה חדשים שהם מזינים. (I2da00) - הגרסה הזו כוללת ממשק
AutofillManagerחדש שאפשר להשתמש בו כדי לשפר את תהליך המילוי האוטומטי של המשתמשים, וגם דגלisSemanticAutofillEnabledלהפעלה של הגרסה החדשה הזו של המילוי האוטומטי. (I9d484) - הוספנו את
Modifier.onRectChangedAPI, שהוא API שמאפשר להירשם למיקום ולגודל שלLayoutNodeביחס לשורש, לחלון או למסך. ה-API פותר הרבה תרחישי שימוש שהמשנהonGloballyPositionedהקיים פותר, אבל הוא עושה את זה עם הרבה פחות תקורה. ה-API כולל גם אמצעים לביטול כפילויות ולויסות נתונים (throttling) של הקריאה החוזרת בהתאם לדרישות של תרחיש השימוש. (I3c8fa) - מוסיפים סוגי נתונים ומאפיינים סמנטיים כדי להרחיב את התמיכה במילוי אוטומטי. (I52c7d)
- כל השיטות ב-builder
AnnotatedStringכבר לא ניסיוניות (Ia89c8, b/261561823)
תיקוני באגים
- תצוגות שמוטמעות בכלי הכתיבה יכולות עכשיו לקבל אירועים של חוגה אם הן במצב ממוקד (I4d53a, b/320510084)
- תוקנה בעיה שבה סוגים שונים של משאבים לא עודכנו בשינויים בהגדרות (Ia9b99, b/352336694)
- תוקנה בעיה שמנעה את הפעולה התקינה של
TextFieldכשמשתמשים במקלדת היפנית POBox במכשירי Sony ישנים מסוימים. (Ia9b99, b/373743376) - תוקנה בעיה שגרמה לתיבות דו-שיח להופיע בתחתית המסך במקום במרכז (Ia2ec, b/373093006)
- טירגוט ל-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) - שיטה חדשה משותפת
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 מכילה את השמירות האלה.
תיקוני באגים
- פונקציות שקשורות לקלט טקסט
SemanticsNodeInteractionperformTextReplacement,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) LookaheadScopeממשקי ה-API הפכו ליציבים (I21507)- שינוי פעולת ה-lambda עבור
getScrollViewportLengthבהתאם למשוב של מועצת ה-API. (Ibc74a) - ממשקי ה-API של
GraphicsLayeroutline עודכנו כך שישתמשו בפרמטרים מסוג float במקום בפרמטרים מסוג int. הוסרו ערכיUnsetOffset/UnsetSize IntSizesentinel לטובת קבועים מסוג Unspecified שכבר קיימים במחלקות מוטבעות מסוג Offset ו-Size שמבוססות על float (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כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (תופעת לוואי) וגלגל העכבר והמקלדת (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) - נוספו מזהי משאבים כדי להסתיר תצוגות שמשמשות כפרטי הטמעה בכלי ה-build (I99531)
- נוספה שיטת ההשהיה
GraphicsLayer#toImageBitmapכדי לתמוך בהצגת תוכן של מפת סיביות ב-GraphicsLayer. זוהי פעולת רינדור עם האצת חומרה ברמת API 22 ומעלה (כולל), שתומכת ביותר מ-99% מכל מכשירי Android. ב-Android API ברמה 21, המערכת חוזרת לרינדור תוכנה. (I9e114) - שיטת עזר להמרה של
RectFב-Android ל-ComposeRect(I39925, b/325660505) - לכל הפרמטרים
KeyboardOptionsיש עכשיו ערך לא מוגדר כברירת מחדל. נוספה שיטתKeyboardOptions.merge. - שם המאפיין
KeyboardOptions.autoCorrectשונה ל-autoCorrectEnabled, והוא הוגדר כמאפיין שאפשר להגדיר בו ערך ריק (null), שמציין שלא צוין ערך. (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
HardwareCanvasלשימוש ב-Android L (I1c3b5, b/288494724) - עדכון של 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כדי שאפשר יהיה להשתמש בממשקי העזר מבוססי-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. (Ic5fa2) -
FocusRequester.createRefsיציב עכשיו (I4d92c, b/261436820) - הוספנו את
DelegatableNode.requireView()כדי לאפשר לצמתי modifier לקבל את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) - קונסטרוקטור חדש ל-
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 חדש כדי לתמוך ביצירת לוגיקה מותאמת אישית של גישה בצומת Modifier מפורש. נוסף גםDeferredTargetAnimationAPI ניסיוני חדש לאנימציות שהיעד שלהן לא ידוע בזמן יצירת המופע. (I60745) - ממשקי API חדשים של
Pathלשאילתת הכיוון של נתיב ולחילוץ קווי מתאר מPath. (I63d04) - נוספו הפונקציות
PathHitTestו-Path.contains(Offset)כדי לבדוק אםPathמכיל נקודה ספציפית. (I3b218) -
TextLayoutResultחושף עכשיו את ה-methodgetLineBaseline(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 מכילה את השמירות האלה.
תיקוני באגים
- תוקנו אי-התאמות בשינוי גודל הגופן כשהגודל קטן מהגודל המינימלי שמוגדר בטבלה. במקרה כזה, אנחנו מבצעים אינטרפולציה בין קנה המידה הלינארי של פי 1 לבין הטבלה המוגדרת הנמוכה ביותר, כך שגודל הגופן גדל באופן מונוטוני ככל שקנה המידה גדל. (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בלי לנתק את הצומת. כדי למנוע את זה, אפשר להשתמש ב-Layout Inspector של 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בפקטורי (factory)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שמבוססות עליו) שנשמרים לשימוש חוזר בעתיד נחשבים ללא פעילים. הוספנוassertIsDeactivated()API חדש לבדיקה כדי לבדוק צמתים כאלה. שאר ממשקי ה-API לבדיקה יסננו כברירת מחדל צמתים שהושבתו. (I2ef84, b/187188981)הוסרו
FocusDirection.Inו-FocusDirection.Out. במקומם אפשר להשתמש ב-FocusDirection.Enterוב-FocusDirection.Exit(I2f660)ממשקי ה-API של Material
SwipeToReveal(לכרטיסים ולצ'יפים) מסתמכים עכשיו על API מבוסס-משבצות (כמומלץ על ידי Compose) במקום על מופעים מבוססי-מחלקות נתונים כדי ליצור את המשבצות האלה. זהו שינוי שעלול לגרום לבעיות, לכן מומלץ לעיין בהדגמה ובקוד לדוגמה כדי ללמוד איך להשתמש ב-API החדש. (Ia8943)ה-constructor
FontStyle(int)הוצא משימוש. במקומו צריך להשתמש ב-FontStyle.Normalאו ב-FontStyle.Italic. (I66610)השם של הממשק
FontScalableשונה ל-FontScaling(Ie804a)
תיקוני באגים
SoftwareKeyboardController.show()לא תציג יותר את המקלדת הווירטואלית אם לא מתמקדים בעורך טקסט. (I2165a, b/301477279)- אירועים של מקש חומרה 'למעלה' עבור מקשים שלא התקבל לגביהם אירוע 'למטה' באותו חלון של כתיבת הודעה יתעלמו מהם. (Ib37b4, b/305518328)
- הוספנו תמיכה ב-Renderer ל-Sweep Gradient ב-
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. מכיוון שהמחלקות האלה הן מחלקות מוטבעות, אם נחליף את האפשרות 'ניתן להגדרה כ-null' באפשרות 'לא צוין', נמנע המרה של טיפוסים פרימיטיביים. הקונסטרוקטורים, ה-getters ושיטות אחרות ב-TextStyleובסגנון Paragraph עודכנו כדי לקבל את הפרמטרים שצוינו כסוגים שאינם null. (I4197e, b/299490814) - הוספת עומס יתר של
GoogleFontלקריאתGoogleFontמ-XML. (If8f59) - הגדרת
LoremIpsumPreviewParameterProviderככיתה פתוחה. (I41bf5, b/266918816, b/300116360)
תיקוני באגים
-
FontFamilyResolverמשתמש עכשיו ב-Dispatchers.Mainעבור קורוטינות לניהול מטמון. (Ie8dd9) -
AndroidViewBindingמסיר עכשיו באופן סינכרוני מופעים שלFragmentשהוגדלו על ידי הכללתFragmentContainerViewבפריסה כחלק מ-onReleaseבאמצעותcommitNow(במקוםcommitשבו נעשה שימוש קודם), וכך מתקן בעיות בשיטה של עריכה בזמן אמת בהחלפת הקומפוזיציה בעקבות שינויים. (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. Compose כולל עכשיו גרסה משלו של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 delegate, כדי למצוא את ה-Composition המקורי. אין לקרוא לפונקציה הזו ישירות, והיא משמשת ליצירת ממשקי API ניסיוניים בזמן הריצה שאפשר למצוא מגרסאות עטופות של רכיב ה-composer, כמו מודול ממשק המשתמש. (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 של
AndroidViewupdateתתבצע רק אחרי שהתצוגה תצורף, במקום להתבצע כשהקומפוזיציה שמציגה אתAndroidViewמוחלת. תוקנה באג שבו הקריאה החוזרת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 הוא מאפיין מדור קודם שקובע אם להוסיף מרווח פנימי נוסף מעל השורה הראשונה ומתחת לשורה האחרונה של הטקסט, כדי להכיל תווים שעשויים לחרוג מעל או מתחת לקווי הבסיס של הטקסט.
עדכון הגרסה הזו של כלי הכתיבה ישנה את אופן העיבוד של כל הטקסטים בממשק המשתמש. המערכת תסיר את הריווח הנוסף מעל השורה הראשונה ומתחת לשורה האחרונה של כל טקסט שמוצג.
השינויים צריכים להיות מינימליים, בהתאם לדרישות ממשק המשתמש ולמדדי הגופן שבהם אתם משתמשים. עם זאת, יכול להיות שתיתקלו בחסימות כמו: - בדיקות צילומי מסך לא תקינות. אם צריך, מתקנים את ממשק המשתמש ומפיקים מחדש את התמונות לדוגמה. – הטקסט לא מיושר בצורה מדויקת. מסירים את כל השוליים השליליים המותאמים אישית או מוסיפים שוליים אם צריך.
כדי להביע הסכמה לשימוש ב-includeFontPadding, צריך להשתמש ב-PlatformTextStyle לכל טקסט:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
אתם יכולים להגדיר את סגנונות Material כדי להפעיל את includeFontPadding לכל ההודעות. שימו לב ששמות הפרמטרים משתנים בין 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) - עדכנו את
DrawScopeAPI כדי להוסיף את האפשרות לטרגט מחדש את הרנדור לקנבס אחר עם צפיפות, כיוון פריסה וגודל חלופיים. - בוצע עדכון של
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) - הוספנו את
asComposePaintAPI כדי להחליף את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)
- תוקנה בעיה ברכיבים הניתנים להרכבה Dialog ו-Popup, שיכולה לגרום לכך שהגודל של חלון הצאצא לא ישתנה כמו שצריך כשמשתמשים ב-
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
תיקוני באגים
- הוספנו את
asComposePaintAPI כדי להחליף את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, מספר נקודה צפה שמשמש לסידור מחדש של צמתים ב-TalkBack(ערכים נמוכים מופיעים לפני). (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)הועבר ל-API יציב. (I79c32, b/261565383) -
TextMeasurerוממשקי API קשורים כבר לא ניסיוניים. (I74647, b/261581753) - נוספה הפעולה הסמנטית
PerformImeActionלהפעלת פעולת ה-IME בצמתים של עורך הטקסט. (Ic606f, b/269633506) -
PlatformTextInputAPIs כבר לא ניסיוניים ב-Android. (I668eb) - השתנה שם פרמטר הערך של
Enum.valueOf(Ia9b89) - יותר חריגים שהופעלו מ-enum valueOf (I818fe)
- השקנו
PlatformTextInputAdapterAPI חדש ברמה נמוכה לבניית הטמעות מותאמות אישית של הזנת טקסט, שמתקשרות ישירות עם ממשקי API של הפלטפורמה. (I58df4) - הוספנו פרמטר
BlendModeלשיטותDrawScope.drawText,Paragraph.paintו-MultiParagraph.paintכדי לתמוך באלגוריתמים שונים של מיזוג כשמציירים טקסט ב-Canvas. (I57508) - שינוי השם של
Font.MaximumAsyncTimeoutלFont.MaximumAsyncTimeoutMillis. שינוי שם בלבד. (I07af5) - ערכי DPI מעודכנים של
@Previewמכשירי הפניה (Id6151, b/254528382) - מוסיפים פרמטרים של
brushו-alphaל-BasicTextכדי לאפשר אנימציה יעילה או הגדרה של מברשת טקסט. - הגדרה של סוגי lambda ללא תיבות עבור 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)
תיקוני באגים
- תוקנה רגרסיה שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי הרכיב הניתן להרכבה
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
- API חדש של
SubcomposeLayoutשמקבל מדיניות נוספת של אמצעי ביניים לטיפול בלוגיקה של מדידה או פריסה במהלך אנימציות שמבוססות על חיזוי. (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 Lookahead הוחלף ב-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) - תוקנה רגרסיה שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי הרכיב
Dialogcomposable (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
- נוספה פונקציה קומפוזבילית
AndroidViewעם עומס יתר, שמקבלת את הפרמטר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) - נוסף
Modifier.Node.onReset()callback חדש שמאפשר לאפס חלק מהמצב המקומי כדי לטפל בצורה נכונה במקרה שבו נעשה שימוש חוזר ב-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) - מידע נוסף על סוגים/מאפיין המציין אם ערך יכול להיות ריק (nullability) של פונקציות מוטמעות/מוסתרות שהוצאו משימוש (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)
- למחלקת הנתונים של כלי ממשק המשתמש
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) -
createFontFamilyResolverAPI יציב עכשיו. אפשר להשתמש בזה כדי לזהות חריגים שלא נתפסו במהלך טעינה אסינכרונית של גופנים. (Ibb481, b/261435386) -
Font.loadingStrategyAPI יציב עכשיו. (I5937c, b/261435386) -
GoogleFontAPI יציב עכשיו. (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, וכולל לוגיקה מחוץ לקריאה החוזרת שמועברת לפונקציות האלה, שאולי צריך להעביר אותה לתוך הקריאות החוזרות. בדוגמאות אפשר לראות את השינויים בבדיקת האנימציה ב-CL הזה. - נוסף פרמטר אופציונלי
onPerformTraversals: (Long) -> Unitל-constructor ולפונקציית factory שלTestMonotonicFrameClockכדי להריץ קוד אחרי הקריאות החוזרות (callbacks) שלwithFrameNanosאבל לפני חידוש שגרות המשנה (coroutines) של המתקשרים. (Idb413, b/254115946, b/222093277, b/255802670) - נוספה EmojiCompat ל-Compose (Ibf6f9, b/139326806)
- נוסף פרמטר טפט חדש ל-
@Previewלתמיכה בצבע דינמי (I9f512)
תיקוני באגים
- ההתראות על החלת תמונת המצב נשלחות עכשיו אחרי ש-
Recomposerמסיים להחיל את השינויים. (Iad6c0, b/222093277) - הוספנו שינויים בגרסה
captureToImageכדי לאפשר צילום מסך של כמה חלונות. האפשרות הזו שימושית לבדיקות של צילומי מסך שמשתמשים בחלונות קופצים של Compose. (I169c5)
עדכונים של יחסי תלות
- ממשק המשתמש של Compose ו-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כפונקציה של גודל ה-Composable. (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 כש-Activity שומר את המצב של Compose View. (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) - שיפור התמיכה בשינוי הגודל והמיקום של החלונות.
- תמיכה במיקוד עבור כפתורי D-Pad ומקלדת חומרה ב-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.
הגובה המקסימלי שנתמך לתיבות דו-שיח ולחלונות קופצים של כתיבת הודעות הופחת מ-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) - הפונקציות ליצירת גופנים מקבלות עכשיו רשימה של
FontVariation.Settingלהגדרת גופנים משתנים במכשירי O ומעלה. (I11a9d, b/143703328) - הוספת
FontVariationAPI להגדרה ולשימוש בגופנים משתנים. (I3c40c, b/143703328) - ה-constructor
LineHeightStyle.Alignmentהוא עכשיו ציבורי (ניסיוני) (I4bbbe, b/235876330) - המאפיין paragraph הוא עכשיו expect|actual ומוגדר ל-Android ולמחשב. (Id387e, b/239962983)
- ממשק Paragraph הוא עכשיו ממשק Paragraph אטום. אין תרחיש לדוגמה שבו יש צורך ביצירת מחלקת משנה של פסקה, ואנחנו ממליצים לפנות אלינו אם השינוי הזה משפיע עליכם. (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תומכים עכשיו בתחבירinשל Kotlin להפעלת הפונקציה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 חדשים ל:
- שוליים פנימיים של חלונות
- פרימיטיבים מרכזיים לאנימציות אינסופיות של פריסות שמבוססות על מחוות
- יכולות
GraphicsLayer, כוללRenderEffect
תיקנו הרבה באגים ושיפרנו את הביצועים
גרסה 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שמקבלים אותו. - החבילה Experimental
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) - פישטנו את
rememberNestedScrollConnectionה-API כדי להשתמש ב-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.המאפיינים
interface AndroidComposeUiTestו-fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)הספציפיים ל-Android מתווספים כדי לספק גישה לפעילות הבסיסית, בדומה ל-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, כלומר אי אפשר עדיין לקרוא לפונקציות של תוספים ב-ComposeUiTestבממשק שלTestRule. כש-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 שהועבר בלי להירשם לשינויים של ערכי המצב שנקראו במהלך הבלוק הזה. האפשרות הזו יכולה להיות שימושית בתרחישי שימוש שבהם רוצים ליהנות מהיתרונות של כתיבה וקריאה thread-safe שמבוססות על snapshot, אבל רוצים לקרוא את הערך בלי לגרום לרה-קומפוזיציה או למדידה מחדש מיותרות. (I9f365, b/214054486) - מאפיין התוסף
consumeWindowInsetsשלComposeViewמאפשר למפתחים להשבית את השימוש ב-AndroidWindowInsets. כך כל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) - Add
GoogleFont.Providerconstructor for use with@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 כשלב ראשון להוספת התכונה 'תצוגה מקדימה מרובה'. אפשר להשתמש בהערות כאלה כדי להוסיף הערות לשיטות Composable או למחלקות הערות אחרות, שאז ייחשבו כהערות שנוספו באופן עקיף באמצעות @Preview. (I12eff)
מכשירים לדוגמה נוספו לרשימת המכשירים בגרסת @Preview (I071c9)
תיקוני באגים
- ממשקי API של גרפיקה וקטורית עודכנו כדי להשתמש בהערה הנכונה שאפשר להרכיב @VectorComposable במקום @UiComposable (I942bc)
- הסרת crossinline מ-
AnnotatedString.Builder.withStyle(If84d5)
External Contribution
- compose-ui: נוספו המאפיינים
ambientShadowColorו-spotShadowColorל-GraphicsLayerScope(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) - עדכון של אפשרות ה-null ב-core וב-appcompat כך שתתאים ל-Tiramisu DP2 (I0cbb7)
- המאפיין parentData מוצג עכשיו בממשק Measured (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
- העדכון כולל שימוש בשגרות משנה (coroutines) של Kotlinx בגרסה 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)תמיכה בטעינה אסינכרונית של גופנים ב-Text (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מאפשרת להגדיר את ההקשר הגלובלי של שגרת המשך (coroutine) שמשמש לטעינת גופנים אסינכרוניים. (I87fe8, b/174162090)נוסף
AndroidFont, API חדש ברמה נמוכה שמאפשר לספק סוגים חדשים של תיאורי משאבי גופנים ב-Android. לדוגמה, טעינת גופנים מקצה עורפי ספציפי לאפליקציה, איתור אופציונלי של גופנים שהותקנו מראש במכשיר או טעינת גופן ממקור שלא מסופק על ידי מפעלי הגופנים הנוכחיים.הרחבנו את
Font.ResourceLoadedAPI כדי לתמוך בטעינה אופציונלית ואסינכרונית של גופנים. לא מומלץ למפתחי אפליקציות להשתמש ישירות ב-API הזה. כדי להוסיף סוגים חדשים של גופנים, אפשר לעיין במאמרAndroidFont.פונקציית ההרחבה
Font.AndroidResourceLoaderמאפשרת ליצורFont.ResourceLoaderכשלא מדובר בהרכבה.נוסף פרמטר
loadingStrategyלגופנים מבוססי-משאבים, כדי לאפשר טעינה אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים להורדה. (Ie5aea, b/174162090)הקונסטרוקטור
Typeface(FontFamily)הוצא משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, והתהליך הזה יכול להימשך עד 10 שניות לגופנים שאפשר להוריד. אם משתמשים בגופנים להורדה, יכול להיות שהשיחה תיחסם למשך 10 שניות. במקומה, צריך להשתמש ב-FontFamilyResolver.preload.האפשרות
fontResource(FontFamily): Typefaceהוצאה משימוש. התג הזה שימש בעבר לטעינה מראש של גופנים, וההורדה של גופנים ניתנים להורדה עשויה להימשך עד 10 שניות. במקום זאת, אפשר להשתמש ב-FontFamilyResolver.preload(If8e7c, b/174162090)הקונסטרוקטור
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ליצירת מזהים קבועים בכלי Layout Inspector. (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
- שיפורים בגודל יעד המגע
- שימו לב: ב-Compose 1.0, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של 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 ניסיוני שמאפשר לשלוח בקשה לרכיבי parent כדי לגלול ולהציג פריט (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) - נוספה פונקציית עומס יתר ללא צאצאים עבור 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)שגורם לגלילה של מאגר תוכן שניתן לגלילה אל התוכן שתואם לשיטת ההתאמה שצוינה. (Ic1cb8) -
InjectionScopeכולל עכשיו אתDensity, כך שאפשר להמיר בקלות בין px ל-dp ב-performTouchInputובמוצרים נוספים של Google. (I8fe1f)
תיקוני באגים
- AndroidView מעביר עכשיו את LocalLifecycleOwner ו-LocalSavedStateRegistryOwner לתצוגה שלו דרך ViewTreeLifecycleOwner ו-ViewTreeSavedStateRegistryOwner. (I38f96, b/179708470)
- תיקנו בעיה שבה לפעמים לא ניתן להשתמש בתכונה SwipeToDismissBox ב-WearOS כדי להחליק כדי לסגור את התיבה. (I9387e)
- הזמן שמוגדר כברירת מחדל בין אירועי קלט מוזרקים השתנה מ-10 אלפיות השנייה ל-16 אלפיות השנייה. השינוי הזה עשוי להשפיע על תוצאות של בדיקות שמבצעות מחוות קלט, כמו החלקה ספציפית. (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. מידע נוסף על ה-API הזמין מופיע בכתובת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 כדי לתמוך בציור של מברשת שרירותית בתוך 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 הייתה אמורה להיות צומת עלה בשרשרת של Modifiers, אבל בגלל זה אי אפשר היה להגדיר אותה במיכל שאפשר להרכיב (למשל, box) או להוסיף קישוטים נוספים מעל, כמו
Modifier.paint().border(). הקריאה ל-drawContent אחרי ציור התוכן של האובייקט הנתון מסוג Painter על ידי Modifier.paint, מאפשרת לנו לשמור על עקביות טובה יותר בהתנהגות עם דפוס השינוי. (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מציינת שהיא מתודה שמופעלת אחרי ההפעלה.אם מחלקה מסוימת מופיעה בקובץ הזה, המשמעות היא שהיא נמצאת בשימוש במהלך ההפעלה, ולכן צריך להקצות לה מראש מקום בזיכרון כדי להימנע מעלות הטעינה של המחלקה.
איך זה עובד?
- ספריות יכולות להגדיר את הכללים האלה, שייארזו בפרטי מידע שנוצרו בתהליך של פיתוח (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.onGloballyPositioned()כבר לא מוטמעות (I727f6, b/186109675) - טיפוס ה-enum
KeyboardTypeמוחלף במחלקה מוטמעת. (I73045, b/187055290) - החלפת סוג הנתונים
FocusStateenum בממשק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 בקריאות החוזרות (callbacks) של 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, שמאפשרת להכין מראש את התוכן למזהה משבצת נדרש. כך, המעבר הבא למדידה יהיה מהיר יותר, כי כשננסה להשתמש ב-subcompose עם מזהה המשבצת הנתון בפעם הבאה, לא יהיה צורך בהרכבה. (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)
- החלפה של כינויי טיפוסים (typealiases) בסוגים הבסיסיים:
-
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 שמאפשר לסמן אוסף של כרטיסיות או לחצני בחירה למטרות נגישות (Ie5c29)
השדה
defaultFactoryעבורcompositionLocalOfו-staticCompositionLocalOfהוא עכשיו שדה חובה ולא שדה אופציונלי.השינוי הזה מסיר שגיאת סוג פוטנציאלית עבור סוגים שאי אפשר להגדיר כ-nullable, שלא סופקה להם הגדרת ברירת מחדל. בעבר, הפעולה הזו הייתה מספקת הפניה לערך null עבור סוג שלא ניתן להקצאה.
בסוגים שניתן להגדיר כ-nullable, כדאי לספק את
{ null }כברירת המחדל של factory.אנחנו לא ממליצים להשתמש ב-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)
ההדרכה הועברה לחבילת הבסיס. ה-API VelocirtTracker הועבר מ-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. עכשיו נעשה שימוש בממשק עם אפשרות גלילה במקום במחלקה 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 כדי לציין מתי שגרת המשך (coroutine) הזיהוי של קלט מצביע צריכה להתחיל מחדש עבור תלות חדשות. (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() ו-destructuring מכמה מחלקות שבהן נעשה בהם שימוש לעיתים רחוקות. (I26702, b/178659281)
- העברנו את החלון הקופץ כך שיהיה ספציפי לפלטפורמה. השם של AndroidPopupProperties שונה ל-PopupProperties, והערך
isFocusableהועבר לפרמטרfocusableב-PopupProperties(Ieeea5) - העברנו את תיבת הדו-שיח כך שתהיה ספציפית לפלטפורמה. השם 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)
- ה-API של Snapshot עודכן כדי להיות עקבי יותר עם הנחיות ה-API, וכדי להסתיר מחלקות הטמעה פנימיות מה-API הציבורי. (Id9e32)
- נוספו פעולות סמנטיות של הרחבה וכיווץ. נוספו expand ו-halfExpand ב-ModalBottomSheetState (Ib5064)
- המאפיין Modifier.dragGestureFilter הוצא משימוש. במקומה, צריך להשתמש ב-method
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) - עכשיו אפשר לסגור את כלי ההלחנה מחדש. רכיבי recomposition סגורים ימשיכו לבצע recomposition עד שקורוטינות הצאצא של ה-composition יושלמו. השם של הפונקציה 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)
- הוצאנו משימוש את הארטיפקט 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)
- ה-API 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 הציבורי
- הוסרה שיטת העמסה (overload) של 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)
תיקוני באגים
- ComposeViews שמוצבים בהיררכיות של תצוגות שהן צאצאים של קומפוזיציה אחרת, מארחים עכשיו קומפוזיציות צאצא של האבות הקדמונים שלהם (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
- נוספו פונקציות factory שמתחילות באות רישית
- הוצאנו משימוש פונקציות קודמות ליצירת אובייקטים עם אותיות קטנות בתחילת השם
- פונקציות חדשות של factory מחזירות את 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)
הוספנו את הפרמטר content_description לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (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.Sp ו-TextUnit.Em הוצאו משימוש, ועדיף להשתמש בפונקציות ההרחבה כמו Int.sp ו-Int.em. (I48369)
משאבים בספריות ללא משאבים ציבוריים שהוגדרו במפורש (למשל דרך public.xml) הם עכשיו פרטיים כברירת מחדל. (Ia1dcc, b/170882230)
התכונות ScrollableColumn ו-ScrollableRow הוצאו משימוש. השימוש ב-ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn כשמדובר בתוכן גדול שניתן לגלילה, כי ב-LazyColumn אפשר להגדיר, למדוד ולצייר רק את הרכיבים הגלויים. כדי למנוע מהמשתמשים להשתמש בדרך הלא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו-ScrollableRow ולעודד שימוש ב-LazyColumn וב-LazyRow במקומם. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות של Lazy ולשנות את המאפיינים ישירות כך: 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.NoAction, צריך להשתמש ב-ImeAction.None
- במקום 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 כבר לא מסווגות כ-data classes
- השם של הפונקציה 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)
שם המיקום שונה ל-DpOffset והפונקציה getDistance() הוסרה (Ib2dfd)
הפונקציה fun Dp.isFinite() הוחלפה ב-val Dp.isFinite (I50e00)
תיקוני באגים
- הכלי Recomposer חושף עכשיו את ה-Flow של המצב הנוכחי שלו, ומאפשר לעקוב אחרי הפעילות שלו ואחרי הפעילות של האפקטים המשויכים. (Ifb2b9)
- עכשיו אפשר לגשת ל-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, מלמטה למעלה ולא מלמעלה למטה. לפני השינוי הזה, היה צריך להשתמש במערך של תוספים כדי להטמיע בנייה מלמטה למעלה, והיה צריך להעתיק את המערך לכל כלי שנדרשה בו בנייה מלמטה למעלה כדי לשפר את הביצועים. בעקבות השינוי הזה,Applierמחליף אתinsertBottomUp()כדי ליצור עץ מלמטה למעלה, ו-insertTopDown()מחליף את כדי ליצור עץ מלמעלה למטה. (Icbdc2)נוספו המאפיינים dismissOnBackPress ו-dismissOnClickOutside ל-AndroidDialogProperties. המאפיינים האלה מאפשרים להגדיר מתי יופעל ה-lambda של onDismissRequest של תיבת הדו-שיח. (If5e17)
נוסף painterResource API כדי לטפל בטעינה אטומה של אובייקטים של Painter מפורמטים של נכסי רסטר (כמו PNG) או מ-VectorDrawables. הצרכנים לא צריכים יותר לקבוע מראש את סוג הנכס, ויכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter לשימוש ברכיבי Image composable או בשינויים של Painter. (I2c703, b/173818471)
נוספה הפונקציה Modifier.clearAndSetSemantics כדי לנקות את הסמנטיקה של צאצאים ולהגדיר סמנטיקה חדשה. (I277ca)
העברנו את ContentDrawScope למודול ui-graphics כדי שיהיה עם DrawScope. (Iee043, b/173832789)
הוספנו את PathEffect graphics API כדי לספק דוגמאות שונות לצורות עם קו מתאר. שימוש ב-NativePathEffect יצא משימוש, ועכשיו צריך להשתמש במימוש expect/actual של PathEffect. (I5e976, b/171072166)
נוספו ממשקי IdlingResource ל-Compose, כגרסה נתמכת של Compose של משאבי ההמתנה של Espresso. אפשר לרשום אותם ולבטל את הרישום שלהם באמצעות ComposeTestRule (I433f3)
הוסרה הרשמה גלובלית (או ביטול הרשמה גלובלי) של ComposeIdlingResource ושל שעונים אל ComposeIdlingResource (I32660)
תיקוני באגים
- פונקציות למדא במאפייני שינוי של היסט מחזירות עכשיו IntOffset ולא Float. (Ic9ee5, b/174137212, b/174146755)
הוסרו SlotTable, SlotReader ו-SlotWriter מה-API הציבורי. בעבר הם סומנו כ-InternalComposeAPI. עכשיו הם פנימיים למודול יצירת המוזיקה.
הוספנו את CompositionData ו-CompositionGroup כתחליף ל-ui-tooling API, כדי להשתמש בהם לחילוץ פרטי קומפוזיציה. ממשקי ה-API האלה הם ציבוריים, אבל הם לא מיועדים לשימוש מחוץ ל-ui-tooling API, כי הם מספקים את המידע הגולמי ש-ui-tooling API מפרש (I31a9c)
בוצע שינוי מבנה ב-ShaderBrush כדי ליצור באופן עצלני מופע של Shader כשמידע על גודל סביבת הציור זמין. השימוש הזה שימושי להגדרת מעברי צבעים שתופסים את כל גבולות הציור של רכיב שאפשר להרכיב בזמן ההרכבה, בלי להטמיע הטמעות מותאמות אישית של DrawModifier.
הוצאנו משימוש ממשקי API של פונקציות ליצירת שיפועים, ועברנו לשימוש במתודות ליצירת אובייקטים (factory methods) באובייקט Gradient. (I511fc, b/173066799)
הוצאה משימוש של LazyColumnFor, LazyRowFor, LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, צריך להשתמש ב-LazyColumn וב-LazyRow (I5b48c)
הוצא משימוש BuildCompat.isAtLeastR (Idb37e)
נוספה פונקציית פקטורי (factory) buildAnnotatedString כדי ליצור AnnotatedString. הפונקציה annotatedString builder הוצאה משימוש. (Idfe0b)
הוסרו שיטות הרחבה ב-Float וב-Double להמרת ערכים לרדיאנים. הועברה להיות פונקציה פרטית בתוך ההטמעה PathParser, שזה המקום היחיד שבו נעשה בה שימוש (I25f52)
גרסה 1.0.0-alpha08
2 בדצמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha08 מופץ. גרסה 1.0.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- הוספת פעולה סמנטית של סגירה (I2b706)
- העברנו את ממשקי DrawModifier API מחבילת androidx.compose.ui לחבילת androidx.compose.ui.draw. נוצר קובץ DrawModifierDeprecated.kt כדי לכלול כינויי טיפוסים ושיטות עזר שיעזרו במעבר מ-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)
- השם של
- השדות 'זמן פעולה' ו'מיקום' של PointerInputData לא יכולים להיות ריקים. (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(). הוא מקבל בלוק למדה ב-GraphicsLayerScope חדש שבו מגדירים את פרמטרי השכבה באופן שמאפשר לדלג על רה-קומפוזיציה ועל פריסה מחדש כשמתרחש שינוי בערך הדינמי. הפונקציה DrawLayerModifier היא עכשיו פנימית, כהכנה להעברת הלוגיקה שלה לשיטה placeable.placeWithLayer() של LayoutModifier (I15e9f, b/173030831) - הוצאנו משימוש את המאפיינים מסוג Ambient ששם המחלקה שלהם מסתיים ב-
Ambient, והחלפנו אותם במאפיינים חדשים ששם המחלקה שלהם מתחיל ב-Ambient, בהתאם להנחיות לגבי מאפיינים מסוג Ambient ולגבי Compose API. (I33440) - העברה של
androidx.compose.ui.text.Typefaceאלandroidx.compose.ui.text.font.Typeface(Ic2b81) - הארגומנט 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
- removed exception thrown for invalid selection range (I4a675, b/172239032)
תמיכה ב-TtsAnnotation למנוע המרת טקסט לדיבור. (I54cc6)
ממשקי API חדשים להפעלת אנימציות ב-coroutines (Ied662)
תיקוני באגים
- הפרמטר alignment של Box נקרא עכשיו contentAlignment. (I2c957)
- השם של משני offsetPx שונה ל-offset. עכשיו הם מקבלים פרמטרים של lambda במקום State. (Ic3021, b/173594846)
- נוסף הפרמטר resetInput ל-TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- הוספנו בדיקת lint לפרמטרים של Modifier בפונקציות Composable. בדיקת ה-lint הזו בודקת את השם, סוג ההחזרה, ערך ברירת המחדל והסדר של הפרמטר כדי לוודא שהם עקביים עם ההנחיות של Compose. (If493b)
- נוספה באופן זמני אפשרות להפעיל את TestAnimationClock באמצעות MonotonicFrameClock (I1403b, b/173402197)
- נוסף רכיב עוטף של גופן ב-Android. אפשר לטעון גופן Android באמצעות הפונקציה
typeface, כלומרtypeface(Typeface.DEFAULT). בנוסף, השם שלtypefaceFromFontFamily()שונה לtypeface()(I52ab7) - הוספנו בדיקת lint כדי לוודא שפונקציות של יצירת Modifier מוגדרות כתוספים ב-Modifier, כדי שאפשר יהיה לשרשר אותן בצורה חלקה. (I07981)
- הסרה של המודול הישן ui-test וה-stub שלו (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 class כדי לייצג גורמי קנה מידה
לצירים האופקי והאנכי בנפרד, כדי לתמוך בתרחישי שימוש של שינוי קנה מידה לא אחיד.
- נוספה שיטת computeScaleFactor אל ContentScale
- נוסף ContentScale.FillBounds כדי לבצע שינוי גודל לא אחיד כדי למתוח את גבולות המקור כך שימלאו את היעד.
- הוספנו שיטות אופרטור לחישוב פרמטרים של ScaleFactor עם פרמטרים של Size.
- (Ic96a6, b/172291582)
- נוספו המפעלים BiasAlignment ו-BiasAbsoluteAlignment ליצירת Alignments. (Iac836, b/169406772)
- מאפשרים למפתח לנקות את המיקוד בכוח. (I90372)
- תוקן באג שגרם לכך שהגובה לא נמשך לתצוגות בתוך Compose. (If7782)
- נוצר API בשם onDrawBehind בתוך ContentDrawScope כדי להתאים למוסכמת מתן השמות של Modifier.drawBehind. (I4fc3a, b/171955269)
- הוספנו תמיכה במרחק המצלמה כדי להשלים את השינויים בתלת-ממד, rotationX/rotationY ב-Layer APIs. (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 בסיסי לטקסט שלא משתמש בערכים מתוך Theme, כדאי לעיין ב-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)
- הוספנו את המשאב composable שמתבצע בו recomposition כשמתבצע עדכון של ההגדרה. (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
- הקומפוזיציה מוגדרת עכשיו כ-CompositionReference וכקומפוזיציית אב תקפה. השימוש ב-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 שמחזירות false עבור onTouchEvent לכל הפעולות מלבד
ACTION_DOWN(I94c5a, b/170320973) - הפונקציה Box הפכה לפונקציה מוטמעת. (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)
הפונקציה Made 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 וגם את Sizes לא סופיים. (I95a7e)
- הסדר של קריאות place() בפריסות בהתאמה אישית מגדיר עכשיו את סדר הציור של הצאצאים (Ibc9f6)
- תמיכה בהמרת AnnotatedString ל-SpannableString לצורך נגישות. (Ief907)
- נוספו stub למחלקות Android בפלטפורמות ישנות יותר כדי להימנע משימוש ב-reflection ככל האפשר. (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 הוסרה. הרוחב מועבר עכשיו ישירות ל-Paragraph. (Ica712)
תיקוני באגים
- עודכנו הרבה ממשקי API של גרפיקה
- ממשקי ה-API של שינוי הגודל והסיבוב עודכנו כך שישתמשו בפרמטר Offset יחיד כדי לייצג את קואורדינטת נקודת המשען, במקום בפרמטרים נפרדים של מספרים עשרוניים לקואורדינטות x/y ב-DrawScope וב-DrawTransform
- הוסרו השיטות Rect.expandToInclude ו-Rect.join
- עדכנו את מסמכי התיעוד של Radius כדי לציין צורה אובלית בנוסף לצורה אליפטית
- הוספנו תיעוד שמציין שאסור לקרוא ישירות לבנאי הציבורי של מחלקת Radius מוטבעת, אלא צריך ליצור מופעים של אובייקטים של 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 שונתה והפכה למאפיין במקום לפונקציה
- העדכון של בנאי RoundRect מאפשר להשתמש במאפייני Radius במקום בפרמטרים נפרדים של ערכי רדיוס x/y
- הוסרו ממשקי API של גודל שהניחו שמדובר במלבן עם נקודת מוצא ב-0,0
- נוסף API להשמדה ל-Radius
- העברנו פונקציות שונות של תוסף 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 (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- עודכנו הרבה ממשקי API של גרפיקה
- עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה בהיקף מוגבל כדי לציין שהטרנספורמציה חלה רק בתוך הקריאה החוזרת (callback) ומוסרת אחרי שהקריאה החוזרת מופעלת.
- עדכנו את מסמכי העזרה בנושא clipPath כך שיפנו אל Path במקום אל מלבן מעוגל
- תיקון הרווח במסמכי התיעוד של הפרמטר right ב-clipPath
- שם הפונקציה DrawScope.drawCanvas שונה ל-drawIntoCanvas, והוסר הפרמטר size
- השמות של הפרמטרים 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 מחזירה הפרש או תוצאה של גודל עם ההפרש?
הוסרו גם שיטות שהוצאו משימוש במחלקה 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 בממשקי API של פריסות. (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
- הסרת קריאה חוזרת (callback) כדי להודיע לבעלים כשגבולות layoutnode משתנים. (If654e, b/166106882)
- הוספנו תמיכה בפרמטרים של filltype בנתיבי גרפיקה וקטורית כדי לתמוך בחיתוכי צורות בהתאם לכללי מילוי הנתיבים evenOdd או NonZero. (I43dd2)
- זמן הפעולה (Uptime) והמהירות (Velocity) הם עכשיו מחלקות מוטבעות (I48f4a)
- המאפיין Duration הוא עכשיו מחלקה מוטבעת (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. שימו לב שבעתיד לא תהיה תמיכה בהוספה ישירה של רכיבי View ו-ViewGroup, אלא אם הם רכיבי עלים בעץ ההיררכיה של הקומפוזיציה. במקרה כזה, אפשר להשתמש ב-AndroidView. (I29b1e, b/163871221) - המאפיין
FocusState2הוצא משימוש והוחלף במאפייןFocusState(Ia8b79, b/160822876, b/160923332) - הוסרו עומסי יתר (overloads) של AndroidView שהוצאו משימוש. (I946b9, b/163802393)
- עכשיו אפשר להצהיר על פונקציות setter מותאמות אישית שאפשר לדלג עליהן ולבצע קומפוזיציה מחדש באופן עצמאי, בלי קשר לפונקציית ה-emit. (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)
Added
mergePolicylambda toSemanticsPropertyKey. אפשר להשתמש בזה כדי להגדיר מדיניות מותאמת אישית למיזוג סמנטי של 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 שנוצר על ידי השילוב של המקש שצוין ומצב מקש המטא (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 במחלקת הנתונים BorderStroke (I4257d, b/158160576)
הוסרו קריאות (calls) ל-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. נוצרו פונקציות דומות ל-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 להרחבת משאבי פריסה ולשילוב שלהם, על סמך ViewBinding. (I081c6)
- הוחלף מ-KeyEvent2 ל-KeyEvent (I2d770, b/162097585)
- הוספנו תמיכה במקש Alt במקלדת פיזית (I9036b)
- ה-API 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)
- הפונקציה Modifier.plus הוצאה משימוש. במקומה צריך להשתמש בפונקציה Modifier.then. השימוש במילה 'ואז' מעביר מסר חזק יותר לגבי הסדר, וגם אוסר על הקלדת
Modifier.padding().background() + anotherModifier, מה ששובר את השרשרת ומקשה על הקריאה (Iedd58, b/161529964) - הוספת מחלקות משנה של View [Abstract]ComposeView לאירוח תוכן Compose בהיררכיית תצוגות. (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
- השמות של הערכים ב-enum StrokeJoin שונו ל-Pascal Case
- שמות הערכים של PointMode שונו ל-Pascal Case
- שונה השם של סוגי ה-enum PaintingStyle ל-Pascal Case
- שינוי השם של סוגי ה-enum PathFillType ל-Pascal Case
- השמות של הערכים של StrokeCap שונו ל-Pascal Case
- היישום של DrawCache עודכן כך שלא נעשה בו יותר שימוש בפרמטרים של lateinit
- העדכון של DrawScope לא כולל יותר שימוש בהעברה עצלה (lazy delegation) לפרמטרים הפנימיים fillPaint ו-strokePaint
- בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
- עודכן הסיווג Outline כך שיכלול הערות מסוג @Immutable
- עדכנו את PathNode כך שיכלול הערות @Immutable לכל הוראת נתיב
- בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון מותנה, כי הפונקציה compose כבר מטפלת בהן
- הוצאנו משימוש את שיטות ה-constructor הנלוות של Rect לטובת פונקציות constructor
- עדכון של מחלקות Brush ושל פונקציות בונות עם ממשקי API @Immutable ו-@Stable
- העדכון של ספירת VertexMode ל-PascalCase
- השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה פרמטרים של קו המתאר בציור אם הם השתנו
- העדכון של Size כולל הוספה של API לפירוק מבנה, שינוי השם של UnspecifiedSize ל-Unspecified והסרה של שיטות שלא נמצאות בשימוש
- עדכון של השימוש ב-API של BlendMode ב-Compose כדי למפות בצורה נכונה בין מצבי BlendMode של 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) - שם ה-API Material
FilledTextFieldשונה ל-TextField, ושם ה-API 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)
- ה-class KeyEvent הוצא משימוש והוחלף ב-KeyEvent2 (I68730)
- נוסף דגל אופציונלי חדש useUnmergedTree לכלי לבדיקת קבצים. (I2ce48)
- הפכנו את LayoutNode ל-API ניסיוני (I4f2e9)
הוספנו שיטות העתקה לסוגים שונים של מחלקות מוטבעות, כולל:
- היסט
- גודל
- רדיוס
- תנועה
TransformOrigin
הוצאה משימוש של השיטה Size.copy של אובייקט נלווה לטובת שיטת העתקה של מופע (Ife290, b/159905651)
חלונות קופצים, תיבות דו-שיח ותפריטים מקבלים עכשיו בירושה את MaterialTheme ההקשרי (Ia3665, b/156527485)
השם של TextDirection השתנה ל-ResolvedTextDirection (I3ff38)
הוסר פרמטר של כיוון הפריסה מבלוק המידה של הפונקציה Layout(). עם זאת, כיוון הפריסה זמין בתוך הקריאה החוזרת (callback) דרך אובייקט היקף המדידה (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 שמייצגים רוחב וגובה שמוצגים כערכים מסוג 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)
בוצעו שינויים ב-API של DrawLayer modifiers: השם של outlineShape שונה ל-shape, ערך ברירת המחדל שלו הוא RectangleShape והוא כבר לא יכול להיות null. השם של clipToOutline שונה ל-clip. האפשרות clipToBounds הוסרה כי היא זהה ל-clip == true עם RectangleShape (I7ef11, b/155075735)
ממשקי API ברמה גבוהה יותר של Compose עודכנו כך שהם חושפים CanvasScope במקום Canvas. כך הצרכנים לא צריכים לתחזק אובייקטים משלהם של Paint. צרכנים שעדיין צריכים גישה ל-Canvas יכולים להשתמש בשיטה drawCanvas של התוסף, שמספקת קריאה חוזרת להנפקת פקודות ציור עם ה-Canvas הבסיסי. (I80afd)
בוצע שינוי ב-API של lambda עם Constraints trailing. עכשיו, במקום שני פרמטרים, יש לו היקף של מקבל, שבנוסף למגבלות ול-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)
(I45f09, b/152842521)
- שינוי השם של ScaleFit ל-ContentScale
- העברנו את ContentScale מ-ui-graphics ל-ui-core module כדי שיהיה באותו מודול כמו 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)
ל-LayoutCoordinates אין יותר מאפיין position. המאפיין 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 לבין רכיב ה-Image שניתן להרכבה, שייעשה בו שימוש בעתיד כדי להשתתף בפריסה ובציור של תוכן. _Body:נוספה שיטת הרחבה ב-android.graphics.Bitmap, Bitmap.asImageAsset(), כדי ליצור מופע של ImageAsset ששימושי לשילוב של פיתוח אפליקציות מסורתי ל-Android עם מסגרת Compose (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 (טקסט/פסקה/טווח) שמועבר לפונקציה merge(). (Ia1add)
הפונקציה FontWeight.lerp לא קופצת יותר. היא עדיין סוג נתונים. (I521c2)
הבונה FontWeight הוא עכשיו ציבורי, הוא כבר לא מחלקת נתונים. (Id6b1f)
הוספת הפונקציות getLineStart, getLineEnd, getEllipsisOffset ו-getEllipsisCount ל-TextLayoutResult (Ibc801)
השם של מודול ui-text שונה ל-ui-text-core (I57dec)
הוסר Size class שלא בשימוש, כי יש Size class כפול במודול 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 inline class שעטף את NativeShader expect class. השם של NativeShader שונה ל-Shader. המחלקת Shader המוטמעת לא הוסיפה שום דבר בעל ערך לממשק ה-API והיא הייתה מחלקה מוטמעת, לכן צריך להשתמש ישירות במחלקה NativeShader. (I25e4d)
בוצע רפקטורינג ב-PainterModifier כך שהוא לא מספק יותר קנה מידה על סמך האילוצים שצוינו והפרמטר ContentScale. ההטמעות של Painter צריכות לשנות את קנה המידה של תוכן הציור בעצמן על סמך הגודל הנתון של DrawScope שאליו הן מציירות.
תוקנה בעיה שבה גודל מפת הסיביות של מטמון VectorPainter נקבע לגודל ברירת המחדל במקום לגודל שצוין לציור.
העדכנו את ImagePainter כך שישנה את קנה המידה של התוכן שלו במקום להסתמך על PainterModifier שיעשה זאת בשמו. (I6ba90)
הוספת הפונקציה withFrameNanos ברמה העליונה לתזמון אנימציה (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 עודכנה כך שהיא מקבלת פרמטר Radius יחיד במקום 2 ערכי float נפרדים לרדיוס לאורך ציר x וציר y (I46d1b)
הקומפוזיציה Recompose כבר לא מהווה הפשטה שימושית. רוב הרה-קומפוזיציה צריכה לקרות כתוצאה מהקצאות של MutableState. לכל דבר אחר, מומלץ להשתמש בפונקציה
invalidateכדי להפעיל יצירה מחדש של ההיקף הנוכחי. (Ifc992)במסגרת מאמצי הרפקטורינג הנרחבים, החלפנו את השימוש במחלקה Px במחלקות שונות של Compose כך שנסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטרים של פיקסלים (Iede0b)
שינוי אסטרטגיית יצירת הקוד של מהדר Compose. לפני השינוי, מהדר ה-Compose היה משנה קריאות לפונקציות שניתנות להרכבה. בעקבות השינוי הזה, אנחנו עכשיו משנים את הגוף של פונקציה קומפוזבילית, ומשאירים את מיקום הקריאה ללא שינוי (ברוב המקרים).
המשמעות היא שרוב הלוגיקה שמתקשרת עם זמן הריצה של הכתיבה מתרחשת בתחילת גוף הפונקציה, במקום במיקום הקריאה.
השינוי הזה אמור להיות תואם למקור בכל השימושים ב-Compose. רוב המשתמשים ב-Compose לא צריכים לעדכן קוד כתוצאה מהשינוי הזה.
כדי לתמוך בעבודה הזו, חתימת ה-JVM של כל הפונקציות שניתנות להרכבה השתנתה. פונקציה קומפוזבילית שמקבלת פרמטר יחיד הופכת לפונקציה שמקבלת 3 פרמטרים. הפרמטרים הנוספים הם Composer, מספר שלם מסוג 'key' ומספר שלם מסוג bitmask שמשמש להעברת מטא-נתונים באמצעות קריאות.
Compose גם הופכת עכשיו ארגומנטים שמוגדרים כברירת מחדל לפונקציה קומפוזבילית. הפעולה הזו מתבצעת בלי להוסיף עומס יתר של ברירת מחדל סינתטית לפונקציה עצמה, ולכן השינוי הזה יגרום להגדרת פחות פונקציות.
אלה שינויים התנהגותיים מכוונים שנובעים מהעדכון הזה:
- חלק מהשיחות ידלגו על שלבים שלא היו מדלגות עליהם בעבר
- ביטויים שניתנים להרכבה בביטויי ארגומנטים שמוגדרים כברירת מחדל מטופלים עכשיו בצורה נכונה
העבודה הזו כללה כמה אופטימיזציות: 1. התוצאה של השוואות בין פרמטרים מועברת דרך גרף הקריאות לפונקציות אחרות שניתנות להרכבה. התוצאה היא פחות השוואות בזמן הריצה, צמצום הגודל של טבלת המשבצות ודילוג על יותר פונקציות שאפשר להרכיב שלא היה עליהן דילוג קודם 2. פרמטרים שנקבע שהם 'סטטיים' בזמן ההידור לא מושווים יותר ולא מאוחסנים בזמן הריצה. כך מצמצמים את מספר ההשוואות ואת גודל טבלת המשבצות. 3. מבנה בקרת הזרימה של גוף הפונקציות משמש לצמצום מספר הקבוצות שנוצרות. הפעולה הזו מקטינה את הגודל של טבלת המשבצות ומפחיתה את העבודה של זמן הריצה 4. פרמטרים של שליחה וקבלה שלא נעשה בהם שימוש בפונקציות לא נכללים בקביעת האפשרות לדלג על הפונקציה אם לא נעשה בהם שימוש בגוף הפונקציה.
רוב השינויים שגורמים לבעיות תאימות הם ב-API שהקומפיילר מכוון אליו ישירות, והשימוש הרגיל ב-Compose לא יושפע: 1. Composer::startExpr הוסר 2. Composer::endExpr הוסר 3. Composer::call הוצא משימוש 4. העומסים העודפים שאינם varargs של
keyהוסרו. להשתמש בגרסה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)