ממשק המשתמש של כתיבת הודעות

רכיבים בסיסיים של ממשק המשתמש של Compose שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, ציור וקלט.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫19 במאי 2026 1.11.2 - - ‎1.12.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.11.2"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.ui:ui:1.11.2")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גרסה 1.12

גרסה ‎1.12.0-alpha03

‫19 במאי 2026

androidx.compose.ui:ui-*:1.12.0-alpha03 מופץ. גרסה ‎1.12.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו מאפיין חדש של credentialRequest Semantics ו-CredentialRequestData helper ב-API 34 ומעלה כדי לאפשר שדות טקסט של Jetpack Compose להשתלב עם Credential Manager של Android באמצעות מסגרת המילוי האוטומטי. (Ida2bf, ‏ b/488446455)
  • נוספה פונקציית יצירה ParagraphIntrinsics שמקבלת את הארגומנט softWrap בין היתר. באופן פנימי, אנחנו יכולים להשתמש בו כאות לכך שהטקסט מוצג כשורה אחת ולבצע אופטימיזציות מסוימות. ‫(I66ca4, ‏ b/485495112)
  • נוספה תמיכה בצלילי אינטראקציה אוטומטיים (קליקים וניווט במיקוד) לרכיבי Compose, עם SoundEffectOnInteraction Composable חדש שמאפשר ביטול הסכמה. שימו לב: כתוצאה מהשינוי הזה, עכשיו צריך להפעיל את מאזיני הקליקים הסמנטיים מה-thread הראשי, מה שעשוי להשפיע על מספר קטן של תרחישי בדיקה. (I78f65)
  • הפונקציה Font factory עברה ייצוב והיא פועלת variationSettings. (I183f2)
  • בוצעה אופטימיזציה של המאפיין ResourceFont loadingStrategy וה-method copy. (I40d84)
  • ממשקי ה-API‏ InterceptPlatformTextInput ו-PlatformTextInputInterceptor עברו לייצוב. (Id2784)
  • כדי לשפר את ההפרדה בין הפלטפורמות, הפונקציות registerIdlingResource ו-unregisterIdlingResource הועברו לפונקציות של תוספים. יכול להיות שתצטרכו לעדכן את הייבוא. (I21d3d, ‏ b/471148519)
  • הוספנו את runWithoutImplicitWait ל-ComposeTestRule ואת ComposeUiTest ל-ComposeTestRule כדי לשפר את ביצועי הבדיקה במהלך בדיקת המצב. ממשק ה-API הזה מאפשר להריץ בלוק קוד עם השבתה של סנכרון מרומז, וכך להימנע מהתקורה של סנכרונים חוזרים לכל שאילתת צומת. כך הבדיקות מתבצעות הרבה יותר מהר, במיוחד בדיקות שכוללות מעבר ידני בין פריימים ודגימה של כמה מאפיינים, כמו בבדיקות של אנימציות. (Ie00e9, b/490270394)
  • עכשיו אפשר להחיל את ההערה @PreviewWrapper על מחלקות הערות MultiPreview, וכך מפתחים יכולים ליצור הגדרות תצוגה מקדימה שאפשר לעשות בהן שימוש חוזר. (I8ae66, b/511170361)
  • הוספנו את MeshGradientPainter לעיבוד של מעברי צבע ברשת.Modifier.meshGradient הוסר, צריך להשתמש ב-MeshGradientPainter עם Modifier.paint במקום זאת. MeshGradientRenderer הוא עכשיו פנימי. (I2d170, ‏ b/508110246)
  • עכשיו אפשר לספק את הכללים בנפרד על ידי ציון פונקציית lambda שמחזירה תשובה אם אפשר לספק את הכלל, ופונקציית lambda נפרדת שמספקת את הערך של הכלל. ה-lambda‏ isRulerProvided לא נצפה, והוא צריך להיות אופטימי לגבי האפשרות לספק ערך. פונקציית ה-lambda‏ rulerProvider נצפית, כך שאם יש שינוי בערך כלשהו, היא תעדכן את ערך הסרגל ואת כל הקוראים של הסרגל. (Ie9089)
  • ב-Style API הניסיוני, הוספנו תמיכה ביצירת סוגי סגנונות מותאמים אישית שיכולים לכלול היקפי סגנונות מותאמים אישית. כך אפשר ליצור קבוצת משנה של המאפיינים שניתנים להגדרה על ידי סגנון (למשל, להסיר לגמרי את שכבת הגרפיקה או מאפייני הטקסט), וגם להרחיב את ההיקף באופן עצמאי מסגנונות אחרים (למשל, לתמוך רק בתחביר playing { } ב-MediaPlayer שאפשר להרכיב). השינוי הזה פוגע בתאימות בינארית ובתאימות למקור. השינוי העיקרי שגורם לבעיות בתאימות לקוד המקור הוא שפונקציות העזר ב-StyleScope הועברו להיות פונקציות הרחבה (לדוגמה, fun contentProperty(all: Dp) היא עכשיו פונקציית הרחבה). כדי שהקוד שקורא לשיטות האלה יתקמפל בצורה תקינה, צריך לייבא את פונקציות התוסף הנדרשות או לייבא את כל הסמלים מ-androidx.compose.foundation.styles. (I1ef27, b/493676648)
  • מוסיפים את updatePointerBy() עם ארגומנט ברירת מחדל למזהה המצביע. (I99f30, b/502001776)
  • DeferredTargetAnimation is 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)

תיקוני באגים

  • תוקנה בעיה שבה המיקוד לא שוחזר בצורה תקינה כשבוצעו כמה קריאות שמירה לאותו פריסה (I10277, b/505371994)focusRestorer
  • שיפור קודם בביצועים גרם לתופעת לוואי שבה לא ניתן למדוד מודעות ComposeViews שלא צורפו. השינוי הזה מאפשר להשתמש בשיטה הזו בלי להחזיר את בעיית הביצועים. (I9b2c5, b/508650647)
  • היצירה המוזיקלית נוצרת מחדש בכל שינוי בComposeViewContext כדי לאפשר גישה מהירה יותר לComposeViewContext. (I3b3a8, ‏ b/487364963)
  • האפשרות הזו מאפשרת ל-Compose להגדיר צבעים שאינם sRGB בציור וב-shader ב-Android, וכך לשמור על מגוון רחב של צבעים על ידי מיפוי נכון של מרחבי הצבעים של Compose למקבילים בפלטפורמה. מרחבי צבעים שלא נתמכים בפעולות רינדור בפלטפורמה (לדוגמה, CIE XYZ,‏ CIE Lab,‏ OkLab) או שלא זמינים ברמת ה-API הנוכחית, יחזרו בבטחה למרחב הצבעים Srgb. (I3efb5, ‏ b/388511109)

External Contribution

  • האפשרות androidx.compose.ui.platform.NativeClipboard typealias הוצאה משימוש. במקומה, צריך להשתמש ישירות ב-android.content.ClipboardManager (Ibc611)
  • החלפת מאפיין Clipboard.nativeClipboard בתוסף Clipboard.nativeClipboardManager כדי למנוע חשיפה של סוג הפלטפורמה ל-commonMain sourceset דרך typealias (Ibc611)

גרסה ‎1.12.0-alpha02

‫6 במאי 2026

androidx.compose.ui:ui-*:1.12.0-alpha02 מופץ. גרסה ‎1.12.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו את MeshGradient Modifier. ‫(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)
  • הוספנו את hasPendingWork() API כדי לאפשר בדיקה פסיבית אם לממשק המשתמש של כתיבת האימייל יש כרגע עבודה בהמתנה, בלי להפעיל המתנה או להקדים את השעון. האפשרות הזו שימושית לבדיקות ידניות של השעון כדי לקבוע מתי אנימציות או פעולות אחרות ברקע מסתיימות. (Ic54e3)
  • הוסר ה-feature flag‏ 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 כשהשכבה מועברת למאגר מחוץ למסך. (Ic1189)
  • כברירת מחדל, רישום ביומן של אירועי קלט במילוי אוטומטי מושבת. כדי להפעיל אותן, צריך להתקשר למספר ComposeView.setAutofillDebugEnabled. (I5b430, ‏ b/487947860)
  • הוחלף VelocityTracker לשימוש בהטמעה שסופקה על ידי Android Framework (ניתן להגדרה באמצעות AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled). (Ibc7e2, ‏ b/359962905)
  • כשהערך של AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnabled הוא True, הפריסה של תצוגות צאצא תמיד נקראת אחרי המדידה במהלך מעבר פריסה. הפריסה של רכיב Child לא תמיד מתבצעת אחרי המדידה, אבל רכיבי 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.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

  • שינוי השם של PreviewWrapper API כדי לשמור על עקביות (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 הוחלף ב-API‏ ComposeView.disableWindowInsetsRulers(). (Idcdb4, b/455590696)
  • העברנו את ה-feature flag הניסיוני isAccessibilityShowOnScreenNestedScrollingEnabled שפועל רק ב-Android אל (I1c13a)
  • הוספת תמיכה בהליכה (I1c13a)
  • דיווח על צמתים סמנטיים מחוץ למסך שהם צאצאים של צמתים מתמזגים שגלויים באופן חלקי במאגרי מידע שניתן לגלול בהם, כדי לשפר את חוויית המשתמש עם קוראי מסך ושירותי נגישות דומים (I71df9, b/434782764)
  • כשהערך של AndroidComposeUiFlags.isSharedClipboardManagerEnabled הוא True, אפשר לשתף מקרים שקשורים ללוח ההעתקה ב-ComposeViews באמצעות ComposeViewContext (I65e2c)
  • הוסרה ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabled (I6e14a, b/455601894)

גרסה ‎1.11.0-alpha05

‫11 בפברואר 2026

androidx.compose.ui:ui-*:1.11.0-alpha05 מופץ. גרסה ‎1.11.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • AndroidComposeUiFlags.isSharedWindowInfoEnabled מעביר את פרטי WindowInfo אל ComposeViewContext. השבתת הדגל משאירה את WindowInfo בשליטת AndroidComposeView (I3b364)
  • מבנים נפוצים ב-ComposeView יועברו אל ComposeViewContext המשותף. זה השינוי הראשון שמעביר את CoroutineContext אל ComposeViewContext. אם הערך של AndroidComposeUiFlags.isSharedComposeViewContextEnabled הוא true, הערכים משותפים באופן אוטומטי. אם הערך הוא False, הם לא משותפים. (I9364d, b/461566955)
  • הוספת תמיכה במחוות במשטח המגע והמרה מאירועי קלט במשטח המגע לעכבר. בעקבות השינוי הזה, אירועים של מצביעים במשטח מגע ששולטים בסמן כמו בטאבלטים או במחשבים ניידים ידווחו בדרך כלל כסמני עכבר, מה שישפר את ההתנהגות של המצביע לגבי תנועה לא רצויה, גלילה והשהיה מעל פריט. תנועות הזזה ושינוי גודל ידווחו גם הן עם מידע נוסף שזמין בשינויים של אירועי מצביע, עם PointerEventType.Pan ו-PointerEventType.Scale חדשים שמציינים שהערכים האלה יוגדרו (Id071a, ‏ b/315527861, ‏ b/459831570).

תיקוני באגים

External Contribution

  • האפשרות androidx.compose.ui.graphics.NativePaint typealias הוצאה משימוש. במקומה צריך להשתמש ישירות ב-android.graphics.Paint (I6303c,‏ b/477394763)
  • החלפת התוסף Paint.asFrameworkPaint() בתוסף Paint.nativePaint כדי למנוע חשיפה של סוג הפלטפורמה ב-commonMain sourceset דרך typealias (I6303c, ‏ b/477394763)
  • הוספת תמיכה במקשי תנועה (NumPadI1ff12)

גרסה ‎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 מתוך Accessibility. (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 שהוצאו משימוש. עם זאת, מומלץ מאוד לעבור ל-API מגרסה 2 כדי לקבל שליטה טובה יותר על הביצוע של קורוטינות. ‫(Iecc9c, ‏ b/455601592)
  • השקנו ממשקי API של androidx.compose.ui.test.junit4.v2.create*ComposeRule. ממשקי ה-API החדשים האלה משתמשים ב-StandardTestDispatcher כברירת מחדל כדי לדמות בצורה טובה יותר את התנהגות הייצור, שבה שגרות משנה מתווספות לתור ולא מופעלות באופן מיידי. מידע נוסף זמין בהנחיות להעברת נתונים. (I1870e, ‏ b/254115946)
  • השקנו ממשקי API של androidx.compose.ui.test.v2.run*ComposeUiTest. ממשקי ה-API החדשים האלה משתמשים ב-StandardTestDispatcher כברירת מחדל כדי לדמות בצורה טובה יותר את התנהגות הייצור שבה שגרות משנה מתוזמנות בתור ולא מופעלות באופן מיידי. מידע נוסף זמין בהנחיות להעברת נתונים. (I4f782, b/254115946)
  • עכשיו אפשר לשתף מבנים נפוצים ב-ComposeView. אם הערך של ComposeUiFlags.isSharedComposeViewContextEnabled הוא true, הערכים משותפים באופן אוטומטי. אם הערך הוא False, הם לא משותפים. (I0d1b4, b/463540495, b/460468959, b/461503366, b/463641813)

תיקוני באגים

  • תוקן באג שבו הסרת כל התוכן מ-ComposeView לא מסירה את התוכן שצויר. (I8b382, b/299503084)
  • תיקון קריסה בהרכבה שניתן להשהות כשהיא מונפשת באמצעות LookaheadScope. ‫(I7e649, ‏ b/469669851)
  • נפתרה בעיה שבה שידור מחרוזות ארוכות מדי לשירות המילוי האוטומטי גרם לקריסה. כדי למנוע את הבעיה הזו, הטקסט נחתך אוטומטית לאורך תקין לפני שהוא נשלח.
  • תוקן באג שבו יציאה ממצב ריחוף יכולה לגרום לקליק בתנאים ספציפיים מאוד (a3d5a0f)
  • תיקון של שליחת אירוע ריחוף של עט סטיילוס לבדיקות, והכנת בדיקות עכבר לבדיקות חדשות של עט סטיילוס. (9ca9bc9)
  • הוספנו תמיכה בהזנת מצביע להזזה של רכיבי ממשק משתמש. (d0742b0, ‏ b/BUD_ID)
  • תוקן באג ב-Jetpack Compose Popup שבו קואורדינטות מוחלטות של גבולות העוגן הועברו אל PopupPositionProvider, מה שגרם למיקום שגוי של חלונות קופצים. חישובים של מיקום חלונות קופצים מתבססים עכשיו על קואורדינטות יחסיות נכונות.(1f7edf,b/469940907)

גרסה ‎1.11.0-alpha02

‫17 בדצמבר 2025

androidx.compose.ui:ui-*:1.11.0-alpha02 מופץ. גרסה ‎1.11.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • ממשקי ה-API של MultiModalInjectionScope יציבים עכשיו. הם כוללים את performKeyInput ואת performRotaryScrollInput, ואת ממשקי ה-API הבסיסיים שלהם למפתחות ולסיבוב מפתחות. ההערה של הניסוי הוסרה. (Ie8bbc, ‏ b/261561237)
  • הוספנו ממשקי API לבדיקת משטחי מגע. הם דומים לממשקי ה-API לבדיקת עכבר, ומזריקים אירועים שמדמים את ההתנהגות של משטח מגע בטאבלט או במחשב נייד. נקודות הכניסה העיקריות הן SemanticsNodeInteraction.performTrackpadInput ו-MultiModalInjectionScope.trackpad (I2ce67), b/432326139.

תיקוני באגים

  • תוקנה בעיה שקשורה ליכולת הפעולה ההדדית של קלט גלילה באמצעות גלגל העכבר, כך שהקלט ייצרך רק אם הוא נצרך בכתיבת הודעה, ולא אם הוא נשלח בכתיבת הודעה. (I5e0c4),

גרסה ‎1.11.0-alpha01

‫3 בדצמבר 2025

androidx.compose.ui:ui-*:1.11.0-alpha01 מופץ. גרסה ‎1.11.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

  • הוסר דגל ממשק המשתמש של isSemanticAutofillEnabled כי המילוי הסמנטי האוטומטי הופעל כברירת מחדל. (I849cf, b/455587954)
  • השתנה האופן שבו השיטה traversable method find findNearestAncestor מגלה צמתים רלוונטיים. מעכשיו, נציגים מאותו סוג (NodeKind) יהיו גלויים במהלך המעבר. השינוי מוגן על ידי הדגל isTraversableDelegatesFixEnabled. (Ia3165, ‏ b/280804097)
  • הוספת מיפוי TextEntryKey עבור ANI#isTextEntryKey (Ifde7b, ‏ b/399540654)
  • התג Modifier.onFirstVisible() הוצא משימוש כי ההתנהגות שלו מטעה והוא לא תמיד פועל בהתאם לחוזה שמוצהר בשם. לדוגמה, אם מוסיפים אותה לפריט של LazyColumn, המערכת תקרא לפונקציית הקריאה החוזרת הזו בכל פעם שהפריט הזה יהפוך לגלוי אחרי גלילה. זה לא מה שמשתמשים במאפיין עם השם הזה עשויים לצפות. מומלץ להשתמש ב-Modifier.onVisibilityChanged() במקום זאת ולעקוב באופן ידני אחרי הנראות של הפריסה, בהתאם לדרישות של תרחיש השימוש הספציפי. (Ia7095, ‏ b/447601783)
  • הוספנו את MeasuredSizeAwareModifierNode, שנדרש כשצריך קריאה חוזרת (callback) של onRemeasured(). מומלץ להשתמש בממשק הזה ישירות במקום להשתמש ב-LayoutAwareModifierNode כללי יותר כשלא צריך קריאות חוזרות אחרות. (If6fb0)

גרסה 1.10

גרסה 1.10.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)
  • לא להתקשר חזרה 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 ו-FontSynthesis valueOf מחזירות עכשיו את השגיאה IllegalArgumentException כשהן מקבלות ערך לא ידוע. (I07c67)
  • מעדכנים את CompositionDataTree.makeTree כדי להעביר ערכי ברירת מחדל במקום פונקציית wrapper. (Id64a6, ‏ b/445229688)
  • ממשקי ה-API של כללי הבדיקה createComposeRule, createAndroidComposeRule ו-createEmptyComposeRule שמקבלים את הפרמטר effectContext הם יציבים, וערך ברירת המחדל של הפרמטר הוא EmptyCoroutineContext. ‫(If400c, ‏ b/450540702)
  • השם של UnplacedStateAwareModifierNode שונה לUnplacedAwareModifierNode (I6a551, b/449719932)
  • ביטול האופטימיזציה של לכידת התוכן (Ic000b, b/442364065)
  • נוסף feature flag‏ ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabled. היא מאפשרת אופטימיזציה של הביצועים, כך שבקשות לקואורדינטות כמו LayoutCoordinates.positionInRoot() משתמשות בהיסטים ששמורים במטמון שכבר יש לנו ב-RectManager, במקום לעבור על כל העץ בכל קריאה. (Ieaadc)

תיקוני באגים

  • PlaceholderSpan משתמש עכשיו בצורה נכונה בסקאלת גופנים לא לינארית לקביעת הגודל (Id2ead, ‏ b/324462728)
  • אפשר להשתמש ב-ViewCompat כדי לבצע קבועים של משוב הפטי שנתמכים ברמת הפלטפורמה, בהסתמך על תמיכת הגיבוי שלה בקבועים חדשים יותר. (Ib5a00)

גרסה ‎1.10.0-alpha05

‫8 באוקטובר 2025

androidx.compose.ui:ui-*:1.10.0-alpha05 מופץ. גרסה ‎1.10.0-alpha05 מכילה את השמירות האלה.

תיקוני באגים

  • תוקן באג שגרם לכך שפריטים קופצים מוטמעים הוצבו בצורה שגויה בחלק העליון של המסך. עכשיו הם מעוגנים בצורה נכונה לפריט הקופץ של ההורה. (Id4603, ‏ b/191279752)
  • תוקנה בעיה שקשורה להעברת המיקוד עם תצוגות אחרות בהיררכיה. ‫(I95223, ‏ b/446028624)
  • תוקנו שדות עם פרמטרים מוטבעים שחסרים בכלי לבדיקת קוד ב-lambdas שנוצרו על ידי Kotlin 2.2.20 ‏ (I9855d, ‏ b/447110005)
  • תוקן שם הצללה של משאבי מילוי אוטומטי בין מודולים של UI ו-foundation‏ (I5da5a)

External Contribution

  • האובייקט UiModes מקבל את השם AndroidUiModes כדי לשקף את העובדה שהקבועים שלו נלקחים מ-Android API. (Ia0a77)

גרסה ‎1.10.0-alpha04

‫24 בספטמבר 2025

androidx.compose.ui:ui-*:1.10.0-alpha04 מופץ. גרסה ‎1.10.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

  • הווריאציה של כלל הבדיקה Compose שמקבלת פרמטר CoroutineContext הועברה לגרסה יציבה. ההערה לגבי הניסוי הוסרה, ומפתחים כבר לא צריכים להביע הסכמה כדי להשתמש ב-API הזה. (I74e6e)
  • השדה ComposeUiFlags.isRectTrackingEnabled הוסר. הלוגיקה הזו לא תמיד מופעלת. (Id78df)
  • הוצא משימוש עומס יתר מוטבע של Updater#set כי הערך שסופק הוכנס לתיבת אובייקט יותר מדי פעמים (Id679e)
  • סימון המאפיין הסמנטי onAutofillText כמאפיין שיצא משימוש. (I6f81c)
  • השקנו את UnplacedStateAwareModifierNode. הוא מספק קריאה חוזרת שנקראת כשהפריסה שהוצבה קודם לא מוצבת יותר. (I8fdd8, b/309776096)
  • תיקנו את התיעוד של RetainObserver.onRetained והוספנו את RetainObserver.onUnused, שמשקף את RememberObserver.onAbandoned. (Ia6fc5)
  • נוספה onVisibilityChangedNode(), שמפיקה Modifier.Node, שמשמשת את Modifier.onVisibilityChanged() באמצעות הענקת גישה, מה שמאפשר להרחיב את הפונקציונליות הזו בModifier.Node בהתאמה אישית. (I70d84, ‏ b/443001320)

תיקוני באגים

  • תוקנה בעיה שגרמה לכך שתוכן מוטבע לא עבר עיבוד כשהוא ממוקם בשורה האחרונה של טקסט עם סימן של השמטה, למרות שה-placeholder קדם לאזור עם סימן ההשמטה. (I76aaf, ‏ b/441829208)

גרסה ‎1.10.0-alpha03

‫10 בספטמבר 2025

androidx.compose.ui:ui-*:1.10.0-alpha03 מופץ. גרסה ‎1.10.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • משנה את השם של DelegatableNode.invalidateLayoutForSubtree ל-DelegatableNode.invalidateMeasurementForSubtree. ‫(I94257, ‏ b/430106107)
  • הסרת התאמה מיותרת של isInHiddenAccessibilitySubtree. (I4476c, b/443792965)
  • הוספנו מעקב אחר מחסנית (stack trace) של קומפוזיציה שמבוסס על מפתח קבוצה, שמופעל כברירת מחדל בכל האפליקציות שעברו מיניפיקציה. מיפוי ה-proguard של העקבות האלה ייווצר על ידי הפלאגין של Compose compiler Gradle החל מ-Kotlin 2.3.0. (Ifbcb5)
  • Modifier.skipToLookaheadSize משתמש עכשיו ב-lambda שמופעלת כברירת מחדל ומאפשרת דילוג על גודל רק כשהמעבר המשותף פעיל, כמו ב-Modifier.skipToLookaheadPosition. (Ibe0f5, b/432485585)
  • ComposeUiFlags.isOutOfFrameDeactivationEnabled הוסרה והפונקציונליות הזו מופעלת עכשיו תמיד. (I421ed)
  • העברת פונקציות של יצירת מופעים של FillableData לאובייקט נלווה. במקום להתקשר אל FillableData(value), צריך להשתמש בשיטות החדשות של הפקטורי: FillableData.createFrom(value). (I2e200, ‏ b/441719650)
  • הוספנו BeyondBoundsLayoutModifierNode צומת חדש של Modifier כדי לבצע פריסה מעבר לגבולות לחיפוש מיקוד. (I39be1, b/416133658)
  • FocusTargetModifierNode.requestFocus() שולח את המיקוד לאחד מהצאצאים שלו כשהוא עצמו לא ניתן למיקוד. התקופה הזו נקבעה בהתאם ל-FocusRequester.requestFocus() ול-FocusRequesterModifierNode.requestFocus(). אם אתם לא צריכים את ההתנהגות הזו, אתם יכולים להגדיר את הדגל ComposeUiFlags.isRequestFocusOnNonFocusableFocusTargetEnabled כ-false באפליקציה שלכם. (Icca5c, ‏ b/436863604)
  • הוספת גודל חלון מבוסס-DP ב-WindowInfo (I9322b, ‏ b/424442112)
  • הוסר סימון בדגל isNestedScrollDispatcherNodeFixEnabled. (If451a)
  • הוספנו תמיכה בערכי תאריך במילוי אוטומטי ב-API‏ FillableData. ‫val dateMillisValue: Long נוסף כדי לאחזר מידע על תאריכים, ונוסף בנאי FillableData(dateMillisValue: Long) תואם כדי ליצור מופעים של FillableData על סמך תאריכים. (Id072a)

External Contribution

  • אובייקט UiModes מוצג כדי להצהיר על קבועים שמשמשים להערה UiMode (I03cb8)

גרסה ‎1.10.0-alpha02

‫27 באוגוסט 2025

androidx.compose.ui:ui-*:1.10.0-alpha02 מופץ. גרסה ‎1.10.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • עדכון FillableData לתמיכה ברכיבים שאינם טקסט, כמו מתגים ורשימות, כולל ערכים בוליאניים ומספריים בתוך FillableData ובוני מפעל ליצירת מופעים בוליאניים ורשימתיים של FillableData שמתורגמים ל-AutofillValue של הפלטפורמה. נוספים גם הפעולה והנכס הסמנטי הרלוונטיים. (Ia8105, Icc5cf)
  • במצב ללא מגע, מערכת התצוגה מקצה מיקוד ראשוני או מיקוד שמוגדר כברירת מחדל לאחד מהפריטים שניתן להתמקד בהם במסך. התכונה הזו מתווספת לכלי הכתיבה, ואפשר להפעיל אותה על ידי הפעלת ComposeUiFlags.isInitialFocusOnFocusableAvailable. (Ib9178)
  • הוסר סימון בדגל isPointerInteropFilterDispatchingFixEnabled. (Iaa589)
  • הוסר סימון בדגל isNestedScrollInteropPostFlingFixEnabled. (I2a756)
  • הוספה של התאמות סמנטיות של isHiddenFromAccessibility() ושל isInHiddenAccessibilitySubtree(). (I9f5a1)
  • נוספה האפשרות runCurrent() אל MainTestClock כדי להריץ את כל המשימות שמועד היעד שלהן חלף בתזמון הבסיסי. הסיבה לכך היא תמיכה בהרצת בדיקות ב-StandardTestDispatcher, שבהן המשימות מתווספות למתזמן במקום להתבצע באופן מיידי כשההשהיה שלהן היא 0 אלפיות השנייה. כדי להגדיר בדיקה לשימוש ב-StandardTestDispatcher, צריך ליצור ComposeTestRule ולהעביר אליו StandardTestDispatcher. כברירת מחדל, הבדיקות מופעלות ב-UnconfinedTestDispatcher, ובמקרה כזה אין צורך לקרוא ל-runCurrent().
  • נוספה תמיכה בהרצת בדיקות ב-StandardTestDispatcher. בעבר, הוגדר (ועדיין מוגדר) 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 יש עכשיו ערך לא מוגדר כדי למנוע את הבעיה של boxing. ל-BaselineShift, ל-Hyphens, ל-LineBreak, ל-TextAlign ול-TextDirection יש עכשיו פונקציות עזר isSpecified. ל-Hyphens, ל-TextAlign, ל-TextDecoration ול-TextDirection יש עכשיו שיטות של valueOf() וערכים שמאפשרות סריאליזציה/דה-סריאליזציה יעילה. (I8d44c)
  • נוסף ממשק חדש לשיטת getDisplayName כדי לאפשר שמות תצוגה מותאמים אישית למופעים של פרמטרים בתצוגה מקדימה. (I19bdf, b/241699422)
  • כשמשווים ערכי Dp לערך Unspecified באמצעות less-than או greater-than, התוצאה שתמיד מוחזרת היא false. השימוש ב-Dp.compareTo(Unspecified) תמיד מחזיר 0. הגדרת הדגל ComposeUiUnitFlags.isDpCompareToChanged כ-false תחזיר את Dp.compareTo() להתנהגות הקודמת שלו, שבה השוואה של Unspecified עם less-than ו-greater-than לא תמיד מחזירה false, והשוואה של compareTo() עם Unspecified תואמת להתנהגות של Float.compareTo(). (Ifa88b, ‏ b/429221319)

תיקוני באגים

  • העברת ברירת המחדל של minSdk מ-API 21 ל-API 23 (Ibdfca, ‏ b/380448311, ‏ b/435705964, ‏ b/435705223)
  • תוקנה בעיה שמנעה את היצירה של AndroidComposeViews חדשים בזמן שמתבצע מעבר. (I2e23e, b/340894487, b/287484338)
  • תוקן באג בצבע כשמשתמשים בפריט גרפי וקטורי שניתן לשרטוט שמשתמש בצבע אחד, והערך של 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)
  • תוקנה בעיה שבה הקריאות החוזרות (callbacks) של משנה onLayoutRectChanged לא תמיד נקראו כש-debounceMillis לא היה אפס. (72aba47, ‏ b/445324854)

גרסה 1.9.3

‫8 באוקטובר 2025

androidx.compose.ui:ui-*:1.9.3 מופץ. גרסה 1.9.3 מכילה את השמירות האלה.

תיקוני באגים

  • תוקן באג שגרם לכך ששינויים ב-onVisibilityChanged/onFirstVisible/onLayoutRectChanged לא קיבלו קריאות חוזרות אם לפריסה שהועברה היו יותר מ-170 צאצאים. (4f2fdd, ‏ b/445356774)

גרסה 1.9.2

‫24 בספטמבר 2025

androidx.compose.ui:ui-*:1.9.2 מופץ. גרסה 1.9.2 מכילה את השמירות האלה.

תיקוני באגים

  • התג Modifier.onVisibilityChanged() מופעל עכשיו בצורה נכונה כשמנתקים צומת או משתמשים בו מחדש. (Ic5ce20)
  • Modifier.onVisibilityChanged() ו-onLayoutRectChanged() מטפלים עכשיו בצורה נכונה בפריסות של רכיבי אב באמצעות placeWithLayer() כדי למקם רכיבי צאצא. (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. כדי להריץ בדיקות lint של Compose בתוך סביבת הפיתוח המשולבת (IDE), נדרשת גרסה Ladybug של Android Studio או גרסה חדשה יותר.
  • שינוי שעלול לשבור את התאימות לאחור: הצמתים של מקש הצירוף graphicsLayer מיישמים עכשיו את SemanticsModifierNode. הדבר עלול לגרום להוספה של SemanticsNodes חדשים לעץ הסמנטי, ולכן להוביל לכשלים בבדיקות שמניחות הנחות לגבי המבנה של עץ הסמנטי. לדוגמה, בדיקות שמשתמשות ב-onChild,‏ onParent,‏ onSibling ובשיטות דומות אחרות כדי ליצור טענות יכולות להיכשל אם מתווסף צומת חדש בין הצומת הנוכחי לצומת היעד. הדרך המומלצת לפתור את הכשלים האלה היא להוסיף testTag ישירות לצומת היעד. גישה אחרת היא להשתמש במתאם חופשי יותר, כמו onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")). (I638b5)

גרסה ‎1.9.0-rc01

‫30 ביולי 2025

androidx.compose.ui:ui-*:1.9.0-rc01 מופץ. גרסה ‎1.9.0-rc01 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה סמלים שנטענו באמצעות painterResource עם צבעים ספציפיים לעיצוב לא התעדכנו בשינויים בעיצוב המערכת. ‫(I85ea0, ‏ b/424416571)
  • תוקנו שגיאות ב-API‏ 21(Lollipop) וב-API‏ 28(Pie) שבהן שמות של שיטות גרפיות חשובות שונו במהלך האופטימיזציה. (Iebf99, ‏ b/425120571, ‏ b/420462749)
  • מוודאים שמתבצעת קריאה חוזרת של משני onLayoutRectChanged שנוספו לאחרונה. ‫(l9aa91),‏ (lb348a)
  • תוקנה בעיה שגרמה לביטול תוקף שגוי של מטמון היסט, וכתוצאה מכך לקריאה למשנים onLayoutRectChanged עם קואורדינטות שגויות (ibd4cd), (lddc57)
  • תיקון של פריסות מסובבות או מוטות שמקבלות קואורדינטות שגויות באמצעות משני onLayoutRectChanged (lddc57, ‏ b/426750475)

External Contribution

  • תוקנה בעיה שגרמה להיעלמות של פריטים ב-dragAndDropSource כשגוללים.LazyList תודה, ויקטור רנדינה! (dc3bcd3, b/425894792)

גרסה ‎1.9.0-beta03

‫16 ביולי 2025

androidx.compose.ui:ui-*:1.9.0-beta03 מופץ. גרסה ‎1.9.0-beta03 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה צללים פנימיים מטושטשים באופן אחיד לא זזו בצורה נכונה עם היסט.

גרסה ‎1.9.0-beta02

‫2 ביולי 2025

androidx.compose.ui:ui-*:1.9.0-beta02 מופץ. גרסה ‎1.9.0-beta02 מכילה את השמירות האלה.

שינויים ב-API

  • שינוי אובייקט נלווה לניסיוני כדי להתאים לסיווג. (I8452a)
  • הוסרה isTrackFocusEnabled תכונת ניסוי (I003fd)

תיקוני באגים

  • אם אין WindowInsets שחודרים לתוכן של ComposeView, לא מסופקים ערכים של WindowInsetsRulers. (I71221)

גרסה ‎1.9.0-beta01

‫18 ביוני 2025

androidx.compose.ui:ui-*:1.9.0-beta01 מופץ. גרסה ‎1.9.0-beta01 מכילה את השמירות האלה.

שינויי תוכנה שעלולים לגרום לכשלים

  • צמתי הצירוף graphicsLayer מיישמים עכשיו את SemanticsModifierNode. הדבר עלול לגרום להוספה של SemanticsNodes חדשים לעץ הסמנטי, ולכן להוביל לכשלים בבדיקות שמניחות הנחות לגבי המבנה של עץ הסמנטי. לדוגמה, בדיקות שמשתמשות ב-onChild, ב-onParent, ב-onSibling ובשיטות דומות אחרות כדי ליצור טענות נכוֹנוּת (assertion) יכולות להיכשל אם מתווסף צומת חדש בין הצומת הנוכחי לצומת היעד. הדרך המומלצת לפתור את הכשלים האלה היא להוסיף 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 שיוצרים תוצאה מורכבת בין שני שיידרים. מוסיפים גם את ShaderBrush#transform כדי להגדיר מטריצת טרנספורמציה לשיידר. ‫(I2621a, b/160665122)

תיקוני באגים

  • תוקן באג ב-NestedScrollInteropConnection שגרם לכך ששיטות ההטלה היו בסדר הלא נכון ביחס לתצוגות. (I56ad4)
  • בעבר, תיבות דו-שיח שהוצגו במסך מלא לא הוצגו באזור מגרעת המסך. הבאג הזה תוקן, כך שתיבות דו-שיח עם decorFitsSystemWindows = false ו-usePlatformDefaultWidth = false יכולות להשתמש באזור המגרעת במסך. (I9e975)
  • תוקן באג שגרם לכך שאינדיקטור המיקוד הירוק של TalkBack לא צויר אחרי שהוא הופעל בזמן שאפליקציית ההלחנה הייתה ברקע. (Ifd12a)

גרסה ‎1.9.0-alpha03

‫20 במאי 2025

androidx.compose.ui:ui-*:1.9.0-alpha03 מופץ. גרסה ‎1.9.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • הדגל ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled גורם לכך שאם אין שום דבר שאפשר להתמקד בו ב-ComposeView, המערכת תגדיר את המלבן לערך Empty. כך לא ניתן לבחור את התצוגה למיקוד בחיפוש מיקוד. זה חשוב במיוחד כשמנסים להתמקד ב-ComposeView באמצעות IME עם אפשרות NEXT, אבל הפעולה נכשלת.requestFocus() ‫(Ibd0e2, ‏ b/369256395)
  • הוספת הדגל isNestedScrollDispatcherNodeFixEnabled. (I0d24a)
  • שינוי השם של DialogProperties' dialogContentTitle ל-windowTitle (Ibd27b)
  • הוספנו את המגבילים Modifier.onFirstVisible ו-Modifier.onVisibilityChanged, שהם מגבילים ברמה גבוהה שמבוססים על Modifier.onLayoutRectChanged. המשנים האלה נוצרו במיוחד כדי לטפל בהרבה דרישות נפוצות של אפליקציות, כמו רישום חשיפות, הפעלה אוטומטית של סרטונים וכו'. הם נוצרו תוך התחשבות בביצועים, כך שאפשר להשתמש בהם בתרחישים קריטיים שמבוססים על רשימות בלי לסכן את ביצועי הגלילה. בנוסף לממשקי ה-API האלה של שינוי ההגדרות, נוספו ממשקי API נוספים ל-RelativeLayoutBounds כדי לתמוך בתרחישי השימוש האלה, וכדי להקל על מפתחים ליצור בקלות שינויים מותאמים אישית דומים שמתאימים בדיוק לתרחיש השימוש שלהם. (I759b8)
  • כדי להתחשב בפיתוח עתידי של התכונה הזו, צריך לשנות את הערך setDiagnosticStackTraceEnabled ל-experimental. (I11db3)
  • השקנו את Modifier.scrollable2D, Scrollable2DState ואת ממשקי ה-API הנלווים ליצירת מצב. נוספו גם פונקציות נפוצות של תוספים לגלילה. (Ic61c8, b/214410040)
  • אי אפשר להשוות ישירות בין ערכי צבע של 64 ביט ב-Compose לבין ערכי צבע של 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), נדרשת גרסה Ladybug של Android Studio או גרסה חדשה יותר.

שינויים ב-API

  • מסיר את הסימון כדי להפעיל הצהרות מעקב עבור כלי המעקב אחר נתיבי היטים (ניפוי באגים). (I1b2a1)
  • הפונקציות InnerRectRulers ו-OuterRectRules הוחלפו בשיטות. הוסר פרמטר השם מ-RectRulers public 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 ניסיוני לרכיבים הניתנים להרכבה כדי לטפל באירועי מגע עקיפים (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 מכילה את השמירות האלה.

תיקוני באגים

  • הדגל של isGetFocusedRectReturnEmptyEnabled הוסר עכשיו, אחרי שהתכונה אומתה באופן מלא. (Ife722)
  • הדגל ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled גורם לכך שאם אין שום דבר שאפשר להתמקד בו ב-ComposeView, המערכת תגדיר את המלבן לערך Empty. כך לא ניתן לבחור את התצוגה למיקוד בחיפוש מיקוד. זה חשוב במיוחד כשמנסים להתמקד ב-ComposeViewבאמצעות IME עם אפשרות NEXT, אבל הפעולה נכשלת.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 וב-LazyLayout d791b11
  • לדלג על בקשות למדידה מחדש של פריטים שהורכבו מראש. הבאג הזה השפיע על ביצועי הגלילה של פריסות עצלות, כי השליפה מראש לא פעלה ביעילות במקרים מסוימים, והמדידה התבצעה בתוך המסגרת. 742087a

גרסה 1.8.0

‫23 באפריל 2025

androidx.compose.ui:ui-*:1.8.0 מופץ. גרסה 1.8.0 מכילה את השמירות האלה.

שינויים חשובים מאז גרסה 1.7.0

  • גרסה 1.8 של Compose כוללת תמיכה חדשה במילוי אוטומטי סמנטי. מוודאים שגרסאות ה-UI וה-Foundation שבהן אתם משתמשים הן גרסה 1.8 ואילך, כי כדי למלא אוטומטית רכיבי טקסט צריך את הגרסאות האחרונות של שני המודולים. לדוגמאות ולמידע נוסף על השימוש ב-API, אפשר לעיין במסמכי התיעוד של התכונה 'מילוי אוטומטי' כאן.
  • ‫Compose 1.8 תומך בסוגים נוספים של משוב הפטי: Confirm, ‏ContextClick, ‏GestureEnd, ‏GestureThresholdActivate, ‏Reject, ‏SegmentFrequentTick, ‏SegmentTick, ‏ToggleOn, ‏ToggleOff, ‏VirtualKey. אפשר לגשת אליה דרך LocalHapticFeedback, וב-Android היא זמינה כברירת מחדל כש-Vibrator API מציין שיש תמיכה במשוב הפטי.
  • מספר ממשקי Focus API יציבים עכשיו, כולל Modifier.focusRestorer(),‏ onEnter ו-onExit FocusProperties (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 מכילה את השמירות האלה.

תיקוני באגים

גרסה ‎1.8.0-rc02

‫26 במרץ 2025

androidx.compose.ui:ui-*:1.8.0-rc02 מופץ. גרסה ‎1.8.0-rc02 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה תצוגות ממוקדות שמוטמעות בהיררכיית ה-Compose גרמו להרכבה חוזרת כשמסירים את התצוגה הממוקדת מ-LazyList. (765562)

גרסה ‎1.8.0-rc01

‫12 במרץ 2025

androidx.compose.ui:ui-*:1.8.0-rc01 מופץ. גרסה ‎1.8.0-rc01 מכילה את השמירות האלה.

תיקוני באגים

  • תוקן קראש שמתרחש כשמסירים AndroidView עם פוקוס כשהמקלדת הווירטואלית פעילה. (Ic725a)
  • תוקנו כמה בעיות בהטמעה של הטיפול החדש במצב המיקוד. (b/395895685)
  • תוקנה בעיה שחוסמת את המילוי האוטומטי כשמשתמשים ב-LaunchedEffect כדי לבקש התמקדות בשדה טקסט. (b/392539099)

גרסה ‎1.8.0-beta03

‫26 בפברואר 2025

androidx.compose.ui:ui-*:1.8.0-beta03 מופץ. גרסה ‎1.8.0-beta03 מכילה את השמירות האלה.

שינויים ב-API

  • העברנו את enableAccessibilityChecks() API שמפעיל את בדיקות הנגישות ל-Android לחבילות נפרדות שהן compose:ui:ui-test-accessibility אם לא משתמשים ב-TestRule ו-compose:ui:ui-test-junit4-accessibility כשמתקשרים אל TestRule (I547ef, ‏ b/391560768)
  • נוסף מאפיין סמנטי חדש, InputText, שמתעד את הערך של שדה טקסט לפני החלת טרנספורמציה של הפלט. (Iae46a)

תיקוני באגים

  • תוקנה בעיה שגרמה לשירותי מילוי אוטומטי לשמור את הטקסט שהפלט שלו עבר שינוי במקום את הטקסט שהוזן. (Iae46a, ‏ b/395911609, ‏ b/176949051)

גרסה ‎1.8.0-beta02

‫12 בפברואר 2025

androidx.compose.ui:ui-*:1.8.0-beta02 מופץ. גרסה ‎1.8.0-beta02 מכילה את השמירות האלה.

תכונות חדשות

  • נוספה בדיקת Lint כדי להזהיר מפני קריאות ל-Configuration#screenWidth/heightDp – אפשר להשתמש ב-LocalWindowInfo.current.containerSize במקום זאת כדי לאחזר את גודל החלון הנוכחי.

גרסה ‎1.8.0-beta01

‫29 בינואר 2025

androidx.compose.ui:ui-*:1.8.0-beta01 מופץ. גרסה ‎1.8.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • התכונות ContextualFlowRow וContextualFlowColumn סומנו כהוצאה משימוש. הרכיב הניסיוני הזה הוצג בגרסה 1.7, עדיין לא עבר ייצוב וההטמעה שלו נחשבת לא רצויה. בעתיד, יכול להיות שנספק רכיב שיפתור את תרחישי השימוש שהרכיב הזה נועד לפתור.
    • ל-FlowRow ול-FlowColumn יש עומסי יתר ניסיוניים שהוצגו בגרסה 1.7 וכוללים פרמטר overflow. השימוש בפרמטר הזה הוצא משימוש, ואפשר להשתמש במקומו בעומסים העודפים בלי הפרמטר הזה. התנהגות ברירת המחדל של העומסים העודפים האלה היא Clip, כמו שהייתה מאז ההשקה.
    • אפשר להשתמש ב-FlowRow כדי לבצע הרבה תרחישים של ContextualFlowRow, אבל אנחנו מודעים לכך שזה לא נכון באופן כללי. אפשר להטמיע את ContextualFlowRow באופן מלא במרחב המשתמש, ואפשר לנסות להעתיק את ההטמעה שלו ולשנות אותה לפי הצורך. בעתיד, אנחנו מקווים לפתור את תרחישי השימוש האלה בדרך אחרת. (Ibafec)
  • SemanticsNodeInteraction.semanticsId() הוסר. במקומה צריך להשתמש במדיניות SemanticsNodeInteraction.fetchSemanticsNode().id. (Ie397a)
  • ממשקי ה-API הישנים של המילוי האוטומטי הוצאו משימוש. במקום זאת, צריך להשתמש ב-API החדש שמבוסס על סמנטיקה. (I943ff)
  • לשכתב את requestAutofill API כך שיהיה מחוץ למנהל המילוי האוטומטי. (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)
  • המאפיין LocalAutofillHighlightColor composition local הוא מסוג 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 מציין שיש תמיכה במשוב הפטי. הפריטים הבאים נוספו אל HapticFeedbackTypeConfirm, 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.onRectChanged API, שהוא API שמאפשר להירשם למיקום ולגודל של LayoutNode ביחס לשורש, לחלון או למסך. ה-API פותר הרבה תרחישי שימוש שהמשנה onGloballyPositioned הקיים פותר, אבל הוא עושה את זה עם הרבה פחות תקורה. ה-API כולל גם כלים לביטול הקפצה (debounce) ולויסות נתונים (throttling) של הקריאה החוזרת, בהתאם לדרישות של תרחיש השימוש. (Id28c7, ‏ b/372765423, ‏ b/372757007, ‏ b/372994338)
  • הוספנו למנהל המילוי האוטומטי את ממשקי ה-API‏ commit() ו-cancel(), שעוזרים למשתמשים לשמור פרטי כניסה חדשים שהם מזינים. (I2da00)
  • הגרסה הזו כוללת ממשק חדש AutofillManager שאפשר להשתמש בו כדי לשפר את חוויית המשתמש של המילוי האוטומטי, וגם דגל isSemanticAutofillEnabled להפעלה של הגרסה החדשה הזו של המילוי האוטומטי. (I9d484)
  • הוספנו את Modifier.onRectChanged API, שהוא API שמאפשר להירשם למיקום ולגודל של LayoutNode ביחס לשורש, לחלון או למסך. ה-API פותר הרבה תרחישי שימוש שהמשנה onGloballyPositioned הקיים פותר, אבל הוא עושה את זה עם הרבה פחות תקורה. ה-API כולל גם כלים לביטול הקפצה (debounce) ולויסות נתונים (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

  • הפרמטר AlignmentLines Map מקבל עכשיו את הסוגים הקונקרטיים VerticalAlignmentLine או HorizontalAlignmentLine. (I02912)
  • ‫method חדש מסוג ByteArray.decodeToImageBitmap(): ImageBitmap. (I83c21)

גרסה ‎1.8.0-alpha01

‫4 בספטמבר 2024

androidx.compose.ui:ui-*:1.8.0-alpha01 מופץ. גרסה ‎1.8.0-alpha01 מכילה את השמירות האלה.

גרסה 1.7

גרסה 1.7.8

‫12 בפברואר 2025

androidx.compose.ui:ui-*:1.7.8 מופץ. גרסה 1.7.8 מכילה את השמירות האלה.

גרסה 1.7.7

‫29 בינואר 2025

androidx.compose.ui:ui-*:1.7.7 מופץ. גרסה 1.7.7 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה הבעיה IndexOutOfBoundsException כשמעבירים AnnotatedString עם LinkAnnotation אל Text composable. (Ic96d2)
  • תוקנה בעיית פסק זמן בבדיקות במקרים נדירים שבהם נעשה שימוש ב-LinkAnnotation ב-AnnotatedString. (I04a03)

גרסה 1.7.6

‫11 בדצמבר 2024

androidx.compose.ui:ui-*:1.7.6 מופץ. גרסה 1.7.6 מכילה את השמירות האלה.

תיקוני באגים

  • בעבר, המערכת הייתה מציגה שגיאה בכל פעם שהיא נתקלה באירוע מרכזי כשהיו ביטולים בהמתנה במערכת המיקוד. מעכשיו אנחנו מתעדים שגיאה במקום זאת (I7ea0, b/346370327).
  • הוסרה הערה ניסיונית מ-SemanticsPropertyReceiver.invisibleToUser(). המאפיין הזה יוצא משימוש בגרסה 1.8 ויוחלף במאפיין SemanticsPropertyReceiver.hideFromAccessibility(). (I448f0, b/376479686)
  • תוקנה בעיה שמנעה את הפעולה התקינה של TextField כשמשתמשים במקלדת היפנית POBox במכשירי Sony ישנים מסוימים. ‫(I94e0e, ‏ b/373743376)
  • תוקנה בעיית נגישות שבה BasicTextinlineContent של BasicText לא הוכרז על ידי 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 שגוי לביטול של lookahead, ולכן תוקן מקרה קצה שבו דילגו על מיקום של lookahead.

גרסה 1.7.2

‫18 בספטמבר 2024

androidx.compose.ui:ui-*:1.7.2 מופץ. גרסה 1.7.2 מכילה את השמירות האלה.

תיקוני באגים

  • שיפור הביצועים של אירועים סמנטיים ושל מידע על צמתים של נגישות על ידי הסרת מעקב מפורט. ‫(I89156, ‏ b/362530618)
  • ComposeView לא יקרוס יותר כשיועבר לו גודל מדידה גדול במיוחד (da5db, ‏ b/347036173)
  • תוקנה בעיה בנגישות של קורא מסך שגרמה לכך שלא הושמעו הודעות על לחצנים.LiveRegion ‫(f66fa7, ‏ b/348590026)

גרסה 1.7.1

‫10 בספטמבר 2024

  • לא חלים שינויים בפריטי מידע של Android. -desktop ארטיפקטים הוסרו ו--jvmStubs ו--linuxx64Stubs ארטיפקטים נוספו. לא מיועד שימוש באף אחד מהיעדים האלה, הם משמשים כ-placeholder כדי לעזור למאמצי Jetbrains Compose.

גרסה 1.7.0

‫4 בספטמבר 2024

androidx.compose.ui:ui-*:1.7.0 מופץ.

שינויים חשובים מאז גרסה 1.6.0

שינויים חשובים בגרסה 1.7.0 מפורטים בפוסט הזה בבלוג.

גרסה ‎1.7.0-rc01

‫21 באוגוסט 2024

androidx.compose.ui:ui-*:1.7.0-rc01 מופץ. גרסה ‎1.7.0-rc01 מכילה את השמירות האלה.

שינויים בולטים

  • מודול ui:ui מחייב עכשיו גרסה מינימלית של foundation:foundation, לפחות 1.7.0-rc01 או גרסה חדשה יותר. האכיפה הזו נועדה לתקן חוסר תאימות בהתנהגות בין ui לבין foundation בנוגע לשינויים ב-NestedScrollSource שקרו בשלב מוקדם במהלך 1.7.0-alpha01.

גרסה ‎1.7.0-beta07

‫7 באוגוסט 2024

androidx.compose.ui:ui-*:1.7.0-beta07 מופץ. גרסה ‎1.7.0-beta07 מכילה את השמירות האלה.

תיקוני באגים

  • הפונקציות SemanticsNodeInteraction, performTextReplacement ו-performTextInput שקשורות לקלט טקסט יחזירו עכשיו שגיאות של טענות (assertion) כשהן מופעלות על performTextClearance לקריאה בלבד.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)
  • השבתת התמיכה בעיבוד תוכנה עבור GraphicsLayer API. (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 הוא עכשיו חלק מה-constructor‏ LinkAnnotation ומה-method‏ AnnotatedString.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)
  • ממשקי GraphicsLayer outline API עודכנו כך שישתמשו בפרמטרים מסוג float במקום בפרמטרים מסוג int. הוסרו ערכי UnsetOffset/UnsetSize IntSize sentinel לטובת קבועים מסוג Unspecified שכבר קיימים במחלקות מוטבעות מסוג float based Offset ו-Size ‏ (I2fb03, ‏ b/333863462)
  • כשמזריקים קלט של עכבר במהלך בדיקות, הפונקציות MouseInjectionScope.click(),‏ MouseInjectionScope.doubleClick(),‏ MouseInjectionScope.tripleClick() ו-MouseInjectionScope.longClick() מקבלות עכשיו פרמטר button: MouseButton כדי שיהיה אפשר להשתמש בהן באופן אוניברסלי יותר. ערך ברירת המחדל הוא MouseButton.Primary לכל השיטות. ‫(I31a23, ‏ b/190493367, ‏ b/261439695)
  • השם של onClicked שונה ל-onClick בתוך LinkInteractionListener. (Iaa35c)
  • שינוי השם של TextInclusionStrategy.isInside לisIncluded. צריך להגדיר את סוג ההחזרה של Paragraph/MultiParagraph#getRangeForRect() כלא ניתן לאיפוס. (I51f26)

תיקוני באגים

  • תוקנה בעיה בצילום מסך ארוך של מאגרי תגים נגללים עם reverseScrolling=true. (I7c59c)

External Contribution

  • הוספנו תמיכה באחזור מראש של פריטים ב-LazyLists מקוננים (למשל LazyColumn שמבצע עיבוד של LazyRows מקונן). השינוי הזה צפוי להפחית את מספר הפריימים שנושרים במהלך גלילה ב-LazyLists האלה. ההטמעה מתבצעת כברירת מחדל על ידי שליפה מראש של 2 הפריטים הראשונים ברמה השנייה, אבל אפשר לשלוט בהתנהגות הזו באמצעות ממשקי ה-API החדשים LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) ו-LazyListPrefetchStrategy#onNestedPrefetch. (I51952)

גרסה ‎1.7.0-alpha07

‫17 באפריל 2024

androidx.compose.ui:ui-*:1.7.0-alpha07 מופץ. גרסה ‎1.7.0-alpha07 מכילה את השמירות האלה.

שינויים ב-API

  • האפשרות ClickableText הוצאה משימוש. כדי להוסיף קישורים לטקסט, יוצרים AnnotatedString עם LinkAnnotation שמתאים לקישור ומעבירים את AnnotatedString הזה ל-Text composable. ‫(I34d4b, ‏ b/323346994)
  • הוספנו את ViewConfiguration.HandwritingGestureLineMargin לתנועות של כתב יד. תמיכה במחוות JoinOrSplit עבור BasicTextField (Ie6e13, ‏ b/325660505)
  • התכונות FocusProperties.enter ו-FocusProperties.exit כבר לא ניסיוניות. התכונות FocusDirection.Enter ו-FocusDirection.Exit כבר לא ניסיוניות. ‫FocusRequester.Cancel כבר לא ניסיוני (I461a1, ‏ b/261564106)
  • כשמבצעים שאילתה לגבי קואורדינטות של פריסה, אפשר עכשיו להשתמש בארגומנט excludeDirectManipulationOffset כדי להחריג את ההיסט שמוגדר על ידי פריסות אם שמיקמו את הרכיבים שלהן באמצעות Placeable.PlacementScope.withDirectManipulationPlacement. באופן דומה, רכיב Layout שמשנה את המיקום של רכיבי הצאצא שלו לעיתים קרובות עשוי למקם אותם עכשיו באמצעות withDirectManipulationPlacement (כמו Scroll, שמוטמע כברירת מחדל). השינוי הזה עוזר ליצור אנימציות אינטואיטיביות יותר ב-approachLayout, כי עכשיו אפשר להבחין בין האנימציה של ההזזה לבין האנימציה של הגישה. (I60ec7)
  • הסרנו את דגל התכונה לצילומי מסך ארוכים. ‫(I28648, b/329128246)
  • מעכשיו, LazyColumn יעבד כותרות קבועות בצורה נכונה בצילומי מסך ארוכים. (I8d239, ‏ b/329296635)
  • מקורות NestedScroll Drag and Fling מוחלפים ב-UserInput וב-SideEffect כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (Side Effect) וגלגל העכבר והמקלדת (UserInput). (I40579)
  • גרסאות ApproachLayoutModifierNode ו-Modifier.approachLayout יציבות עכשיו, ויש גרסאות חדשות isMeasurementApproachInProgress() ו-isPlacementApproachInProgress() שמחליפות את הגרסאות הישנות isMeasurementApproachComplete() ו-isPlacementApproachComplete() בהתאמה.
  • הוסר משנה (modifier) שהוצא משימוש intermediateLayout. (I3e91c)
  • שינוי השם של GraphicsLayer#buildLayer ל-record כדי לשקף את השיטות begin/endRecording של ממשקי API שנתמכים על ידי Displaylist כמו RenderNode ו-Picture.
  • העדכון של rememberGraphicsLayer מאפשר שימוש ב-rememberObserver. ‫(I312c1, ‏ b/288494724, ‏ b/330758155)
  • האפשרות UrlAnnotation הוצאה משימוש. במקומה יש להשתמש באפשרות LinkAnnotation.Url. אם אתם משתמשים בערכת נושא של Material, אתם יכולים להשתמש באובייקט TextDefaults כדי ליצור את ההערה עם ערכת הנושא של Material (I8d180, b/323346545)
  • נוספה אפשרות לעיצוב של מצב לחיצה לקישורים טקסטואליים, בנוסף לעיצוב רגיל, עיצוב במצב ריחוף ועיצוב במצב מיקוד (I5f864, b/139312671)
  • השם של String.parseAsHtml שונה לAnnotatedString.Companion.fromHtml. (I43dcd)
  • נוספו ארגומנטים של סגנון (linkStyle, ‏focusedLinkStyle, ‏hoveredLinkStyle) ומאזין לאינטראקציה עם קישור לשיטה parseAsHtml. כשמנתחים את המחרוזת עם תגי HTML באמצעות תגי <a>, השיטה יוצרת תג LinkAnnotation.Url לכל תג כזה ומעבירה את אובייקטי הסגנון ואת מאזין האינטראקציה עם הקישור לכל הערה. (I7c977)
  • LinkAnnotation מקבל עכשיו את הארגומנטים של העיצוב מבוסס-המצב ואת LinkInteractionListener. כדי להוסיף היפר-קישור, מוסיפים את ההערה הזו ל-AnnotatedString. אפשר להעביר את הערכים focusedState או hoveredState כדי להגדיר את המראה של הקישורים כשמתמקדים בהם או כשמעבירים מעליהם את העכבר.configuration (I81ce4, b/139312671)
  • ImeOptions.hintLocales כבר לא יכול להיות null. אם רוצים להעביר רשימה ריקה של לוקאלים, צריך להשתמש ב-LocaleList.Empty. (Ic5bc4)

תיקוני באגים

  • מטפל בצורה חלקה בנתוני אירועים היסטוריים שגויים או פגומים (מתעלם מנתוני אופסט שגויים).
  • תוקנו אירועים לא צפויים של הצבעה כשמוסיפים באופן דינמי משנה של קלט הצבעה לפני משנה אחר של קלט הצבעה במהלך זרם פעיל של אירועי קלט הצבעה (לדוגמה, בין כניסה למצב ריחוף לבין יציאה ממצב ריחוף [עכבר/עט]).

גרסה ‎1.7.0-alpha06

‫3 באפריל 2024

androidx.compose.ui:ui-*:1.7.0-alpha06 מופץ. גרסה ‎1.7.0-alpha06 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו את ה-method‏ parseAsHtml למחרוזות עם סגנון: היא מאפשרת להמיר מחרוזת שמסומנת בתגי HTML ל-AnnotatedString. שימו לב: לא כל התגים נתמכים. לדוגמה, עדיין אי אפשר להציג רשימות עם תבליטים. (I84d3d, ‏ I30626, ‏ b/139326648)
  • הוספנו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות ה-API הרשמי של Android ‏ (ScrollCaptureCallback). התכונה הזו ניסיונית, ויכול להיות שהיא לא תטפל כרגע בכל המקרים בצורה נכונה. לכן, בשלב הזה הוא מושבת כברירת מחדל. כדי להצטרף, מגדירים את הדגל ComposeFeatureFlag_LongScreenshotsEnabled לערך true. (I2b055, ‏ b/329296471)

שינויים ב-API

  • הערך fun ClipEntry.getMetadata() השתנה ל-val ClipEntry.clipMetadata. (I50155)
  • הפונקציות ClipboardManager.getClipMetadata ו-ClipboardManager.hasClip הוסרו. אפשר להשתמש ב-clipEntry.getMetadata() כדי לקרוא את המטא נתונים של רשומת הקטע הנוכחית. כדאי גם לבדוק את התוצאה של ClipboardManager.getClip אם היא null או לא, כדי להבין אם יש בלוח העתקה קטע נוכחי. (I50498)
  • עכשיו אפשר להעביר אובייקטים של GraphicsLayer לפונקציות של placeable.placeWithLayer() (I1b22f)
  • ClipboardManager.setClip מקבל עכשיו ערך null כדי לאפשר ניקוי של הלוח. (I7d2e9)
  • נוספו מזהי משאבים כדי להסתיר תצוגות שמשמשות כפרטי הטמעה בכלי בנייה (I99531)
  • נוספה שיטת ההשהיה GraphicsLayer#toImageBitmap כדי לתמוך בהצגת תוכן של מפת סיביות ב-GraphicsLayer. זוהי פעולת רינדור עם האצת חומרה ב-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) וריאנט ו-BasicSecureTextField משתמשים עכשיו ב-KeyboardActionHandler במקום ב-KeyboardActions כדי לעבד פעולות שמתבצעות במקלדת וירטואלית. (I58dda)

גרסה ‎1.7.0-alpha05

‫20 במרץ 2024

androidx.compose.ui:ui-*:1.7.0-alpha05 מופץ. גרסה ‎1.7.0-alpha05 מכילה את השמירות האלה.

תכונות חדשות

  • השקנו GraphicsLayerAPI חדש לתיעוד פקודות ציור ברשימת התצוגה, וגם מאפיינים נוספים שמשפיעים על העיבוד של רשימת התצוגה. הגבול הזה מאפשר לחלק סצנה מורכבת לחלקים קטנים יותר שאפשר לעדכן בנפרד בלי ליצור מחדש את כל הסצנה. אפשר לבצע שינויים ב-GraphicsLayer בלי להקליט מחדש את רשימת התצוגה. בניגוד ל-Modifier.graphicsLayer,‏ GraphicsLayer מאפשרת עיבוד של תוכן שאפשר להרכיב במקומות אחרים, והיא שימושית בתרחישי שימוש של אנימציה שבהם התוכן אמור לעבור עיבוד בסצנות שונות.

שינויים ב-API

  • GraphicsLayer.draw(Canvas) כבר לא API ציבורי. במקומה צריך להשתמש בפונקציית התוסף DrawScope.drawLayer(GraphicsLayer) כדי לצייר את השכבה. (I7a7c0)
  • פיצול של restrictedConstraints() לשתי שיטות: fitPrioritizingWidth() ו-fitPrioritizingHeight() (I6d7fd)
  • נוסף stub לשימוש ב-Android L ‏ (I1c3b5, ‏ b/288494724)HardwareCanvas
  • עדכון של Compose framework כדי לחשוף GraphicsContext composition local לצד עדכון של Owner, DelegateableNode ושל drawWithCache Modifier 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 של GraphicsLayer expect/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() כדי לאפשר לצמתי עיבוד לקבל את View הנוכחי של Android בלי לקרוא את המיקום המקומי של הקומפוזיציה. (I40768)
  • ‫API חדש Path.reverse() לשינוי הכיוון של נתיב (I36348)
  • נוסף hintLocales ל-KeyboardOptions כדי לספק ל-TextFields את היכולת להציע ל-IMEs לוקאלים ספציפיים כדי להגדיר מראש שפה מועדפת.
  • חשיפת הנכס platformLocale מתוך Locale שמחזיר את אובייקט הפלטפורמה הבסיסי, למשל java.util.Locale. (I921c6)

גרסה ‎1.7.0-alpha03

‫21 בפברואר 2024

androidx.compose.ui:ui-*:1.7.0-alpha03 מופץ. גרסה ‎1.7.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • חדש: ContextualFlowRow ושיפורים ב-FlowRow/Column עם MaxLines ו-Overflow. אנחנו שמחים להודיע על שיפורים ברכיבים הניסיוניים FlowRow ו-FlowColumn, שכוללים עכשיו תמיכה ב-maxLines וב-overflow, ועל השקת הרכיבים ContextualFlowRow ו-ContextualFlowColumn. העדכון הזה נועד לספק רכיבים עם ביצועים אופטימליים. הרכיב ContextualFlow* מתאים למספר גדול של פריטים שמשתמשים בהגדרה קטנה של maxLines ובלחצנים דינמיים של 'עוד' +N. הרכיבים FlowRow ו-FlowColumn מתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRow או ב-FlowColumn, שבה כל הפריטים מורכבים בלי קשר להתאמה שלהם למקסימום הציר הניצב, צריך להגדיר את overflow ל-FlowRowOverflow.Visible או ל-FlowColumnOverflow.Visible במהלך האתחול. כדאי לנסות את ContextualFlowRowSample ו-FlowRowSample כדי לראות דוגמאות לשימוש בתכונות החדשות. (Ib9135, ‏ b/293577082)
  • הוספת מאפיין סמנטי maxTextLength שצריך להגדיר בשדות טקסט שמסננים את מספר התווים המקסימלי המותר. ‫(I24d9f, b/170648072)
  • יצא משימוש העיטוף Modifier.inspectable. ה-API הזה יוצר יותר ביטולים של שינוי המחיר מהנדרש, ולכן השימוש בו לא מומלץ יותר. מפתחים שרוצים לחשוף מאפייני שינוי לכלים מוזמנים להטמיע את המתודה inspectableProperties() ב-ModifierNodeElement. (Ib3236)
  • ‫Constructor חדש ל-PopupProperties שמאפשר שליטה מלאה בדגלים של WindowManager.LayoutParams. (Ibb33e, ‏ b/312485503)
  • הוספנו את DelegatableNode.requireLayoutCoordinates() כדרך לקבל את Modifier.Node הנוכחי של LayoutCoordinates בלי שתצטרכו לבטל את onPlaced ולאחסן את הקואורדינטות בנכס בעצמכם. (Ia8657)
  • הוספנו את DelegatableNode.currentLayoutCoordinates כדרך לקבל את Modifier.Node הנוכחי של LayoutCoordinates בלי שתצטרכו לבטל את onPlaced ולאחסן את הקואורדינטות בנכס בעצמכם. (Iaebaa)
  • BasicTextField2 וממשקי API קשורים בחבילה androidx.compose.foundation.text2 מועברים אל androidx.compose.foundation.text. (I9f635)
  • הוספנו ApproachLayoutModifierNodeAPI חדש כדי לתמוך ביצירת לוגיקה מותאמת אישית של גישה בצומת Modifier מפורש. נוסף גם DeferredTargetAnimation API ניסיוני חדש לאנימציות שהיעד שלהן לא ידוע בזמן יצירת המופע. (I60745)
  • ממשקי API חדשים של Path לשאילתת הכיוון של נתיב ולחילוץ קווי מתאר מ-Path. (I63d04)
  • נוספו הפונקציות PathHitTest ו-Path.contains(Offset) כדי לבדוק אם Path מכיל נקודה ספציפית. (I3b218)
  • ה-TextLayoutResult חושף עכשיו את ה-method‏ getLineBaseline(lineIndex). בנוסף למאפייני הנוחות הקיימים firstBaseline ו-lastBaseline, אפשר לקרוא את קו הבסיס של שורה שרירותית בטקסט. (Ide4e8, b/237428541)
  • הוספנו שיטה להשוואה רק של ההערות של שני AnnotatedStrings. (I32659)

תיקוני באגים

  • תוקנה בעיית תאימות לאחור ב-SemanticsPropertyReceiver.performImeAction וב-SemanticsActions.PerformImeAction. (Id0528, b/322269946)

גרסה ‎1.7.0-alpha02

‫7 בפברואר 2024

androidx.compose.ui:ui-*:1.7.0-alpha02 מופץ. גרסה ‎1.7.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • נפתרה בעיה בתאימות בינארית עם SemanticsPropertyReceiver.performImeAction. (I65865, b/322269946)
  • ה-constructor‏ 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 כדי לתמוך בתוכן שרירותי כמו תמונות.
  • הוספת DeviceConfigurationOverride API ל-ui-test כדי לאפשר שינוי מקומי של התנהגות התוכן שנבדק, למשל כדי לציין גודל זמין, מיקום, כיוון פריסה, קנה מידה של גופן או ערכת נושא.

גרסה 1.6

גרסה 1.6.8

‫12 ביוני 2024

androidx.compose.ui:ui-*:1.6.8 מופץ. גרסה 1.6.8 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנו אי-התאמות בשינוי גודל הגופן כשהגודל קטן מהגודל המוגדר הנמוך ביותר בטבלה. במקרה הזה, אנחנו מבצעים אינטרפולציה בין קנה המידה הלינארי 1x לבין הטבלה המוגדרת הנמוכה ביותר, כך שגודל הגופן גדל באופן מונוטוני ככל שקנה המידה גדל. (Icbae3)

גרסה 1.6.7

‫1 במאי 2024

androidx.compose.ui:ui-*:1.6.7 מופץ. גרסה 1.6.7 מכילה את השמירות האלה.

גרסה 1.6.6

‫17 באפריל 2024

androidx.compose.ui:ui-*:1.6.6 מופץ. גרסה 1.6.6 מכילה את השמירות האלה.

תיקוני באגים

  • תיקון של קריסה נדירה של BasicTextField.

גרסה 1.6.5

‫3 באפריל 2024

androidx.compose.ui:ui-*:1.6.5 מופץ. גרסה 1.6.5 מכילה את השמירות האלה.

גרסה 1.6.4

‫20 במרץ 2024

androidx.compose.ui:ui-*:1.6.4 מופץ. גרסה 1.6.4 מכילה את השמירות האלה.

גרסה 1.6.3

6 במרץ 2024

androidx.compose.ui:ui-*:1.6.3 מופץ. גרסה 1.6.3 מכילה את השמירות האלה.

גרסה 1.6.2

‫21 בפברואר 2024

androidx.compose.ui:ui-*:1.6.2 מופץ. גרסה 1.6.2 מכילה את השמירות האלה.

גרסה 1.6.1

‫7 בפברואר 2024 ‫androidx.compose.ui:ui-*:1.6.1 מופץ. גרסה 1.6.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיית תאימות לאחור ב-SemanticsPropertyReceiver.performImeAction וב-SemanticsActions.PerformImeAction. (Ie0bb2, ‏ b/322269946)
  • פריסות מציגות עכשיו שגיאה בזמן המדידה אם אחת מהן מחזירה גודל גדול באופן חריג. שגיאה כזו מתרחשת בדרך כלל כשמשתמשים במגבלות מקסימליות ישירות במדידה בלי לבדוק אם יש Constraints.Infinity. הבדיקה תעזור למפתחים למצוא בעיות בפריסה עם גודל שגוי, ולא בפריסה שמכילה אותה. (I339a9)

גרסה 1.6.0

‫24 בינואר 2024

androidx.compose.ui:ui-*:1.6.0 מופץ. גרסה 1.6.0 מכילה את השמירות האלה.

גרסה ‎1.6.0-rc01

‫10 בינואר 2024

androidx.compose.ui:ui-*:1.6.0-rc01 מופץ. גרסה ‎1.6.0-rc01 מכילה את השמירות האלה.

תיקוני באגים

  • הטמעה של גרפיקה וקטורית שעברה אופטימיזציה כדי לשפר את הביצועים על ידי צמצום של הרכבות מחדש נוספות.

גרסה ‎1.6.0-beta03

‫13 בדצמבר 2023

androidx.compose.ui:ui-*:1.6.0-beta03 מופץ. גרסה ‎1.6.0-beta03 מכילה את השמירות האלה.

תכונות חדשות

  • עכשיו אפשר לנתק LayoutCoordinates בלי לנתק את הצומת. כדי למנוע את זה, אפשר להשתמש בכלי לבדיקת פריסות ב-Compose‏ (If693)

תיקוני באגים

  • PlatformImeOptions היא עכשיו מחלקה קונקרטית במקום ממשק. (If40a4)
  • תוקן מצב שבו בוצעו קומפוזיציות חוזרות נוספות במורד הזרם בגלל שערכים חדשים סופקו ל-LocalSoftwareKeyboardController ול-LocalTextInputService בכל פעם שבוצעה קומפוזיציה חוזרת של רכיב הבסיס. (I42190, ‏ b/310510985)

גרסה ‎1.6.0-beta02

‫29 בנובמבר 2023

androidx.compose.ui:ui-*:1.6.0-beta02 מופץ. גרסה ‎1.6.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.6.0-beta01

‫15 בנובמבר 2023

androidx.compose.ui:ui-*:1.6.0-beta01 מופץ. גרסה ‎1.6.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • המשנה DragAndDropTarget מקבל עכשיו את DragAndDropTarget המקבל באופן מפורש, ויש לו ביטוי למדא כדי להצטרף לסשן של גרירה ושחרור. עכשיו יש שתי פונקציות ליצירת אובייקט DragAndDropModifierNode. אחד לקבלת העברות ואחד להעברת נתונים (I69481)
  • העדכון של maximumFlingVelocity מיוצג כ-Float. עדכנו את המסמכים כדי להבהיר את נושא maximumFlingVelocityהאחדות. (I8adc7)
  • השם של onDragAndDropStart בפקטורי (factory) DragAndDropModifierNode שונה ל-acceptDragAndDropTransfer.המשנה acceptsDragAndDropTransfer נוסף ל-dragAndDropTarget כדי לאשר קבלה מסשן של גרירה ושחרור. פונקציית ה-lambda הזו מחזירה DragAndDropTarget אם המשתמש מעוניין בסשן של גרירה ושחרור. פונקציות למבדא אחרות לעיבוד אירועי גרירה הוחלפו בפונקציה הזו. נוספה פונקציית למבדא DragAndDropTarget כדי לקבל נתונים מסשנים של גרירה ושחרור (Iebf3a)
  • הוסר DragAndDropInfo כסוג DragAndDropModifierNode.drag מקבל עכשיו פרמטרים עבור transferData, גודל העיטור וגרירת העיטור DrawScope lambda

    ל-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‏ (לכרטיסים ולצ'יפים) מסתמכים עכשיו על API מבוסס-משבצות (כמומלץ ב-Compose) במקום על מופעים מבוססי-מחלקות נתונים כדי ליצור את המשבצות האלה.SwipeToReveal זהו שינוי שעלול לגרום לבעיות, לכן מומלץ לעיין בהדגמה ובקוד לדוגמה כדי ללמוד איך להשתמש ב-API החדש. (Ia8943)

  • הקונסטרוקטור FontStyle(int) הוצא משימוש. במקומו צריך להשתמש ב-FontStyle.Normal או ב-FontStyle.Italic. (I66610)

  • השם של הממשק FontScalable שונה ל-FontScaling (Ie804a)

תיקוני באגים

  • אם לא מתמקדים בעורך טקסט, המקלדת הווירטואלית לא תוצג יותר עם SoftwareKeyboardController.show(). ‫(I2165a, ‏ b/301477279)
  • אירועים של מקש חומרה למעלה עבור מקשים שלא התקבלו באירוע למטה באותו תצוגת כתיבה יתעלמו עכשיו. (Ib37b4, b/305518328)
  • הוספנו תמיכה ב-Sweep Gradient במעבד התצוגה ב-ArcLine. (I4d5bb)
  • הטמעת equals ו-hashcode עבור PageSize.Fixed. (Ie3ede, ‏ b/300134276)
  • תיקון בעיה בתאימות בינארית לשינוי של חלון מוטבע (Iee695)
  • הסרנו את שכבת הליבה של Material עבור רכיב Chip/Button של Material3, כי המיקרו-בנצ'מרקים מראים ביצועים טובים יותר בלעדיה. (I55555)
  • הערך TestDispatchers שמועבר כ-effectContext לבדיקות של Compose ישמש עכשיו ליצירת הבדיקה ולמסגרת השעונים. (Ia7178)

גרסה ‎1.6.0-alpha08

‫18 באוקטובר 2023

androidx.compose.ui:ui-*:1.6.0-alpha08 מופץ. גרסה ‎1.6.0-alpha08 מכילה את השמירות האלה.

שינויים ב-API

  • השם של פונקציית ה-lambda‏ onDrawDragShadow ב-Modifier.dragAndDrawSource שונה ל-drawDragDecoration, והשם של פרמטר הגודל ב-DragAndDropInfo שונה ל-dragDecorationSize. ‫(Id0e30, ‏ b/303904810)
  • הוספנו את SemanticsNodeInteraction.isDisplayed() ו-SemanticsNodeInteraction.isNotDisplayed() כדי לבדוק אם צומת תואם גלוי או לא, בלי לבצע גם טענה לגביו. (I2c196, ‏ b/302100809)
  • הוספנו ערך מיוחד Unspecified לשדות TextAlign, TextDirection, Hyphens ו-LineBreak של ParagraphTextStyle כדי להחליף את null. מכיוון שהמחלקות האלה הן מחלקות מוטבעות, אם נחליף את הערך nullable בערך Unspecified, נמנע המרה של טיפוסים פרימיטיביים. העדכנו את הבונה, את ה-getters ואת שיטות אחרות ב-TextStyle ובסגנון Paragraph כדי לקבל את הפרמטרים שצוינו כסוגים שאינם null. (I4197e, ‏ b/299490814)
  • הוספת GoogleFont overload לקריאת GoogleFont מ-XML. (If8f59)
  • הגדרת LoremIpsum PreviewParameterProvider ככיתה פתוחה. (I41bf5, b/266918816, b/300116360)

תיקוני באגים

  • FontFamilyResolver משתמש עכשיו ב-Dispatchers.Main עבור קורוטינות לניהול מטמון. (Ie8dd9)
  • AndroidViewBinding עכשיו, כשמשתמשים ב-commitNow (במקום commit ששימש בעבר), המערכת מסירה באופן סינכרוני מופעים של Fragment שהוגדלו על ידי הכללת FragmentContainerView בפריסה כחלק מ-onRelease. כך נפתרות בעיות בשיטה של עריכה בזמן אמת, שבה ההרכב מוחלף כשמתבצעים שינויים. (I58fbf)

גרסה ‎1.6.0-alpha07

‫4 באוקטובר 2023

androidx.compose.ui:ui-*:1.6.0-alpha07 מופץ. גרסה ‎1.6.0-alpha07 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו את PlatformTextInputMethodTestOverride לכתיבת בדיקות לעורכי טקסט בהתאמה אישית. (Id159b)
  • נוספו dragAndDropSource Modifier להפעלת סשנים של גרירה ושחרור, ו-dragAndDropTarget Modifier לקבלת נתונים מסשנים של גרירה ושחרור. (Ib7828, ‏ b/286038936)
  • נוספו אוספי ColorList ו-ColorSet שלא כוללים הקצאות. (I744bd)
  • נוסף DisableNonLinearFontScalingInCompose דגל זמני להשבתת שינוי גודל הגופן הלא ליניארי. אם אתם צריכים זמן כדי לנקות את הבחנים, אתם יכולים להגדיר DisableNonLinearFontScalingInCompose = true בבחנים. הדגל הזה יוסר ב-Compose 1.6.0-beta01. (Ic9486)

תיקוני באגים

  • ניתוח אופטימלי של פריטים גרפיים וקטוריים ב-XML. (Ibb015)

גרסה ‎1.6.0-alpha06

‫20 בספטמבר 2023

androidx.compose.ui:ui-*:1.6.0-alpha06 מופץ. גרסה ‎1.6.0-alpha06 מכילה את השמירות האלה.

שינויים ב-API

  • אופטימיזציות נוספות לסמלי Material. (I3e08d)
  • נוספה האפשרות לעבור למעלה או למטה בעץ של שינוי המאפיינים כדי למצוא צמתים דומים. (I2d234)
  • נוספה קריאה חוזרת (callback) של onRestoreFailed() לשינוי focusRestorer() (Ie1d43)
  • נוספו הערות של androidx ל-API שונים של גרפיקה כדי לציין ColorInt, FloatRange, IntRange, Size ועוד. ‫(Id65c8, ‏ b/290950582)
  • הוספת showSystemUi=true להגדרה של PreviewScreenSizes (Ib61d3)

שינויים בהתנהגות

  • התכונה 'יצירת אימייל' משתמשת עכשיו בסקאלת גופנים לא לינארית כדי לשפר את הקריאות והנגישות. אם קנה מידה של הגופן גדול מ-100% בהגדרות המערכת, גודל הטקסט הקטן יגדל באופן רגיל, אבל גודל הטקסט שכבר גדול יגדל רק קצת. בנוסף, גובה השורה שמוגדר ב-SP יותאם באופן אוטומטי כדי לשמור על יחס פרופורציונלי לגובה המיועד של 100%. מידע נוסף זמין במאמר בנושא שיטות מומלצות לשינוי גודל הגופן. (I11518)

גרסה ‎1.6.0-alpha05

‫6 בספטמבר 2023

androidx.compose.ui:ui-*:1.6.0-alpha05 מופץ. גרסה ‎1.6.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • הפעלת צילום מסך ב-AndroidComposeViewAccessibilityDelegateCompat. (Ib2969)
  • המהירויות של תנועות ההטלה ברכיבי התצוגה כמו ScrollView ו-RecyclerView מוגבלות ל-ViewConfiguration.ScaledMaximumFlingVelocity. הגרסה של maximumFlingVelocity שמופיעה עכשיו בכלי הכתיבה חלה על Draggable. (Ibf974)
  • הוספנו פיגומים ראשוניים לתמיכה בממשקי API של גרירה ושחרור בפלטפורמה. (If84ce)
  • הוספת deviceId אל RotaryScrollEvent (Iba3bf)
  • עדכון של ui-tooling Devices 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)
  • עדכנו את ColorFilter API כדי להוסיף סוגים קונקרטיים של מחלקות משנה, וכך לשפר את יכולת הבדיקה של הפרמטרים. (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 אחר כדי להעביר אותם אל ה-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) של AndroidView תידחה עד שהתצוגה תצורף, במקום לפעול כשהקומפוזיציה שמציגה את AndroidView מוחלת.update תוקנה באג שבו הקריאה החוזרת update לא בוטלה אם ערך דינמי שהיא קראה השתנה מיד על ידי אפקט. (Ie9438, ‏ b/291094055)

גרסה ‎1.6.0-alpha01

‫21 ביוני 2023

androidx.compose.ui:ui-*:1.6.0-alpha01 מופץ. גרסה ‎1.6.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • תמיכה בחיפוש קדימה ב-LazyList. הפעולה הזו מאפשרת ל-LazyList במעבר הצפייה קדימה לדלג על כל אנימציה (למשל, אנימציה של מיקום פריט, AnimatedVisibility וכו') ולחשב את הגודל והמיקום של הצפייה קדימה עבור כל רכיבי הצאצא. אחרי שלב התכנון, ילדים של LazyList יכולים להנפיש באופן עצמאי את המציאות כפי שהיא נראית בשלב התכנון.

שינוי בהתנהגות: הערך של includeFontPadding הוא עכשיו false כברירת מחדל ב-Compose

הערך של includeFontPadding הוא עכשיו false כברירת מחדל (21d806) בכתיבת הודעה.

includeFontPadding הוא מאפיין מדור קודם שקובע אם להוסיף מרווח פנימי נוסף מעל השורה הראשונה ומתחת לשורה האחרונה של הטקסט, כדי להכיל תווים שעשויים לגלוש מעל או מתחת לקו הבסיס של הטקסט.

עדכון הגרסה הזו של Compose ישנה את אופן העיבוד של כל הטקסטים בממשק המשתמש, כי הוא יסיר את הריווח הנוסף מעל השורה הראשונה ומתחת לשורה האחרונה של כל טקסט שמוצג.

השינויים צריכים להיות מינימליים, בהתאם לדרישות ממשק המשתמש ולמדדי הגופן שבהם אתם משתמשים. עם זאת, יכול להיות שתיתקלו בחסימות כמו: - בדיקות צילומי מסך פגומות. אם צריך, מתקנים את ממשק המשתמש ויוצרים מחדש את התמונות לדוגמה. ‫– הטקסט לא מיושר בצורה מושלמת. מסירים את כל השוליים השליליים המותאמים אישית או מוסיפים שוליים אם צריך.

אפשר להביע הסכמה לשימוש ב-includeFontPadding באמצעות PlatformTextStyle לכל טקסט:

Text(
 text = myText,
 style = TextStyle(
   lineHeight = 2.5.em,
   platformStyle = PlatformTextStyle(
     includeFontPadding = true/false
   )
   /* … */
  )
)

אתם יכולים להגדיר את סגנונות 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)
  • הוספת ResourceResolutionException type כדי לעטוף את ה-throwables שמופעלים כשמנסים לטעון נכסי bitmap עם תיאור של נתיב הנכס שלא נטען. (I19f44, b/230166331, b/278424788)
  • נגישות אופטימלית לשיפור הביצועים והקצאות הזיכרון. (Iede48)
  • נוספו מאפיינים ופעולות סמנטיים לתמיכה בתרגום טקסט. (I4a6bc)
  • מאפיין חדש ב-IntrinsincMeasureScope וההטמעות שלו (למשל, MeasureScope) כדי לציין אם שלב המדידה הנוכחי הוא שלב של חיזוי. (I7a812)
  • עדכנו את DrawScope API כדי להוסיף את האפשרות לטרגט מחדש את העיבוד לקנבס אחר עם צפיפות, כיוון פריסה וגודל חלופיים.
  • בוצע עדכון של DrawContext כדי לתמוך בהגדרת הצפיפות וכיוון הפריסה, וגם כדי לאפשר הגדרה של אזור הציור. (Ie1f9b, b/225408150)
  • נוסף Paragraph#fillBoundingBoxes כדי לחשב תיבות תוחמות של תווים. (If30ee)
  • נוספה קבוצה של MultiPreviews נפוצים (Ia5a27)

תיקוני באגים

  • נוסף ממשק FocusTargetModifierNode שאפשר להשתמש בו כדי ליצור FocusTarget בהתאמה אישית. (I9790e)
  • השם של הפרמטרים fallback* ב-constructor TextMeasurer השתנה ל-default*. (I940a5)
  • השם של SemanticsPropertyReceiver.performImeAction שונה ל-onImeAction ושל SemanticsActions.PerformImeAction ל-OnImeAction. (I8e841)
  • נוסף Wheel כדי להבחין בין גלילה בעכבר לבין גרירה בגלילה מקוננת (במיוחד ב-NestedScrollConnection). (Ie57e4)
  • הוספנו API‏ asComposePaint כדי להחליף את toComposePaint, כי האובייקט שמוחזר עוטף את android.graphics.Paint המקורי (I22b4c)
  • הוצאה משימוש של SemanticsProperties.imeAction והחלפה בפרמטר חדש ל-SemanticsActions.performImeAction. (I4a587)
  • הוספנו תמיכה בבחירה באמצעות העכבר. הבחירה באמצעות מגע תתרחב לפי מילה ותצטמצם לפי תו. ‫(Ic0c6c, ‏ b/180639271)
  • ה-methods של Paragraph שבעבר החזירו AssertionError עבור היסטים מחוץ לגבולות, מחזירות עכשיו IllegalArgumentException כמו MultiParagraph. ‫(I549d3, ‏ b/243338896)

גירסה 1.5

גרסה 1.5.4

‫18 באוקטובר 2023

androidx.compose.ui:ui-*:1.5.4 מופץ. גרסה 1.5.4 מכילה את השמירות האלה.

גרסה 1.5.3

‫4 באוקטובר 2023

androidx.compose.ui:ui-*:1.5.3 מופץ. גרסה 1.5.3 מכילה את השמירות האלה.

תיקוני באגים

  • ‫(b/301209788) TextField לפעמים החלת פקודות קודמות באופן שגוי כשמתמקדים בהזנה של קלט קוריאני, מה שמוביל לאובדן תווים.

גרסה 1.5.2

‫27 בספטמבר 2023

androidx.compose.ui:ui-*:1.5.2 מופץ. גרסה 1.5.2 מכילה את השמירות האלה.

תיקוני באגים

  • נוסף פתרון עקיף לקריסות כשניגשים ל-API של גלילה לנגישות משרשור ברקע.
  • תיקון של צמתים לא מצורפים שנוספים לעץ הסמנטיקה.

גירסה 1.5.1

‫6 בספטמבר 2023

androidx.compose.ui:ui-*:1.5.1 מופץ. גרסה 1.5.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה שדות טקסט הציגו מקלדת ואפשרו עריכה כשערך המאפיין readOnly היה true. תוקנה גם בעיה שגרמה לכך שהמקלדת לא הוצגה כש-readOnly השתנה מ-true ל-false בזמן שהמיקוד היה עליה. (I34a19, ‏ b/246909589)

גרסה 1.5.0

‫9 באוגוסט 2023

androidx.compose.ui:ui-*:1.5.0 מופץ. גרסה 1.5.0 מכילה את השמירות האלה.

גרסה ‎1.5.0-rc01

26 ביולי 2023

androidx.compose.ui:ui-*:1.5.0-rc01 מופץ. גרסה ‎1.5.0-rc01 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה קריסה שקורית כשמשתמשים ב-SubcomposeLayout בתוך movableContentOf().

גרסה ‎1.5.0-beta03

‫28 ביוני 2023

androidx.compose.ui:ui-*:1.5.0-beta03 מופץ. גרסה ‎1.5.0-beta03 מכילה את השמירות האלה.

תיקוני באגים

  • נוסף ממשק FocusTargetModifierNode שאפשר להשתמש בו כדי ליצור FocusTarget מותאם אישית. (Ifb1d6)
  • תוקנה בעיה ברכיבים הניתנים להרכבה של חלונות קופצים וחלונות דו-שיח, שיכולה לגרום לכך שגודל חלון הצאצא לא ישתנה כמצופה כשמשתמשים ב-usePlatformDefaultWidth=true. (I112ee)

גרסה ‎1.5.0-beta02

‫7 ביוני 2023

androidx.compose.ui:ui-*:1.5.0-beta02 מופץ. גרסה ‎1.5.0-beta02 מכילה את השמירות האלה.

שינויים ב-API

  • נוסף asComposePaint API כדי לאפשר שימוש במופע android.graphics.Paint ב-Compose

תיקוני באגים

  • הוספנו API‏ asComposePaint כדי להחליף את toComposePaint, כי האובייקט שמוחזר עוטף את android.graphics.Paint המקורי (I22b4c)

גרסה ‎1.5.0-beta01

‫24 במאי 2023

androidx.compose.ui:ui-*:1.5.0-beta01 מופץ. גרסה ‎1.5.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • הסרנו הקצאות ברה-קומפוזיציה, באנימציות של צבעים וב-AndroidComposeView (Ib2bfa)
  • נוסף כלי עזר CacheDrawModifierNode() כדי לאפשר הענקת הרשאת גישה (Icf8f9)
  • הוספנו את המאפיין isLookingAhead, שאפשר לגשת אליו מ-MeasureScope, כדי לצפות בתוצאות של חיפוש מראש ולהשפיע על המעבר הראשי אם רוצים. (Ibf4c3)
  • מאפיין סמנטי חדש traversalIndex, מספר נקודה צפה שמשמש לסידור מחדש של צמתים ב-TalkBack traversal (ערכים נמוכים יותר מופיעים לפני). ‫(I9a81b, b/186443263)
  • שינוי השם של מאפיין הסמנטיקה isContainer ל-isTraversalGroup (I121f6)
  • המינוי של ColorProducer הוא עכשיו operator fun invoke במקום produce (I4a9a2)
  • מוסיפים את Path Transform API כדי להחיל טרנספורמציות של תרגום, שינוי גודל או סיבוב על אובייקטים של נתיבים. (I23434, b/233772232)
  • השיטה של ColorProducer נקראת produce. (I78bde)
  • שינוי השם של toFrameworkColorSpace לtoAndroidColorSpace (I4f547)
  • שינוי השם של ColorLambda לColorProducer. (I73b1a)
  • הוספת ממשקי API להמרה בין סוגים של מרחבי צבעים ב-Android וב-Compose. (Ie7db4, ‏ b/279979665)
  • נוסף פרמטר צבע ל-BasicText כדי לאפשר אנימציה יעילה או הגדרת צבע טקסט. (Iffd88, ‏ b/246961787)
  • השם של TextRange.constrain שונה ל-TextRange.coerceIn. (I31be2)
  • הוספנו את הפונקציה TextStyle.merge(...) שעברה אופטימיזציה עם רשימת פרמטרים מלאה. (Iad234, ‏ b/246961787)
  • ייצבנו הרבה ממשקי API של טקסט, כולל Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush). (I2f740, ‏ b/261581564, ‏ b/261581931, ‏ b/261561245)
  • המאפיין PlatformTextStyle.includeFontPadding כבר לא מוצא משימוש. הכוונה המקורית שלנו הייתה להסיר את השדה, אבל המשוב שקיבלנו מראה שמפתחים צריכים את אפשרות ההגדרה הזו. לכן, הסרנו את ההוצאה משימוש של השדה (I98e96, b/277703184)
  • נוספה שיטת TextRange.constrain ציבורית. (I97912)
  • עכשיו אפשר לפתוח UrlAnnotation ב-AnnotatedString באמצעות שירותי נגישות כמו TalkBack. (If4d82, b/253292081)
  • נוספה פעולת הסמנטיקה InsertTextAtCursor לשדות טקסט. (I11ed5)
  • LineHeightStyle.Alignment(topRatio) constructor מקודם ל-API יציב. (I79c32, b/261565383)
  • ממשקי ה-API של TextMeasurer וממשקי API קשורים כבר לא ניסיוניים. (I74647, ‏ b/261581753)
  • נוספה הפעולה הסמנטית PerformImeAction להפעלת פעולת ה-IME בצמתים של עורך טקסט. ‫(Ic606f, ‏ b/269633506)
  • PlatformTextInput APIs כבר לא ניסיוניים ב-Android. (I668eb)
  • הערך של שם הפרמטר עבור Enum.valueOf השתנה (Ia9b89)
  • יותר חריגים שהופעלו מ-enum valueOf ‏ (I818fe)
  • השקנו PlatformTextInputAdapter API חדש ברמה נמוכה לבניית הטמעות של קלט טקסט בהתאמה אישית, שמתקשרות ישירות עם ממשקי 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. אפשר לעשות זאת באמצעות ממשקי ה-API‏ delegate ו-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‏ LookaheadLayout הוחלף ב-LookaheadScope, שכבר לא מוגדר כ-Layout. כך אפשר לשלוט ישירות בתוכן של רכיב צאצא ב-LookaheadScope באמצעות MeasurePolicy של רכיב האב. (Ibe2e5)
  • מוסיף את Modifier.Node#coroutineScope כדי לאפשר ל-Modifier.Nodes להפעיל קורוטינות. (I76ef9)
  • הוספת האפשרות לקרוא את CompositionLocals ל-Modifier.Nodes על ידי הטמעה של הממשק CompositionLocalConsumerModifierNode. (Ib44df)
  • הפצה של מחלקה עם הערה @Deprecated למאפיין. (I882d1)

גרסה 1.4

גרסה 1.4.3

‫3 במאי 2023

androidx.compose.ui:ui-*:1.4.3 מופץ. גרסה 1.4.3 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה יכול להיות שהפריסה של AndroidView לא תהיה נכונה כשמשתמשים בה עם מקשי שינוי מסוימים. (I4dc77, b/274797771)
  • תוקן באג בחיפוש פוקוס דו-ממדי שהשפיע על DropDown תפריטים (b/276811828)
  • תוקן באג במאפייני כניסה/יציאה מותאמים אישית של מיקוד, שגרם להפעלת בלוק הכניסה/יציאה רק בפעם הראשונה שהופעלה פונקציית ה-lambda (b/277234245)
  • תוקנה רגרסיה במערכת המיקוד שגרמה לקריסה במהלך קריאה של focusProperties. (b/271324781, b/274897776)

גרסה 1.4.2

‫19 באפריל 2023

androidx.compose.ui:ui-*:1.4.2 מופץ. גרסה 1.4.2 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה AndroidView לא השתמש מחדש במאפייני השינוי שלו בצורה נכונה, מה שיכול היה לגרום להתנהגות לא צפויה ולקריסות. (Ib67ee, b/275919849)
  • תוקנה רגרסיה שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי ה-composable‏ Dialog (I82551, ‏ b/262140644)

גרסה 1.4.1

‫5 באפריל 2023

androidx.compose.ui:ui-*:1.4.1 מופץ. גרסה 1.4.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה ParentDataModifier לא משפיע על AndroidView (b/274797771)

גרסה 1.4.0

‫22 במרץ 2023

androidx.compose.ui:ui-*:1.4.0 מופץ. גרסה 1.4.0 מכילה את השמירות האלה.

שינויים חשובים מאז גרסה 1.3.0

  • נוסף API חדש של PinnableContainer שמאפשר להצמיד פריטים ברשימה עצלה, כדי שהם לא יימחקו כשמגלגלים אותם מחוץ לגבולות. לדוגמה, Modifier.focusable() משתמש במנגנון הזה כדי להצמיד את הפריט שמוצג כרגע. (Ib8881, ‏ b/259274257, ‏ b/195049010)
  • מערכת המיקוד נכתבה מחדש באמצעות ממשקי ה-API הניסיוניים החדשים של Modifier.Node. (I7f4d7, ‏ b/247708726, ‏ b/255352203, ‏ b/253043481, ‏ b/247716483, ‏ b/254529934, ‏ b/251840112, ‏ b/251859987, ‏ b/257141589)
  • נוספה תכונת הסמנטיקה IsContainer בפלטפורמות השונות של Google. הנכס הזה ישמש בשינוי מאוחר יותר שקובע את סדר המעבר בין רכיבים על סמך המשמעות הסמנטית של רכיבים כמו משטחים. (I63379)
  • נוסף תפקיד נגישות חדש DropdownList. אפשר להשתמש בזה כדי לשכפל את ההתנהגות של TalkBack כשמתמקדים ב-android.widget.Spinner. (I177e5, b/236159001)
  • עכשיו אפשר להשתמש ב-PlatformTextStyle(emojiSupportMatch) כדי להשבית את העיבוד של תמיכת האמוג'י בפסקה אחת. (Ia7100, ‏ b/139326806)
  • בדיקות ממשק משתמש של Android Compose יפעילו עכשיו מעברי פריסה לכל פריים כשמבצעים פריים כדי להגיע למצב בלי פעילות (למשל באמצעות waitForIdle). יכול להיות שהשינוי הזה ישפיע על בדיקות שמאמתות פריים ספציפי של אנימציות פריסה. ‫(I8ea08, ‏ b/222093277)
  • נוספה התכונה הניסיונית TextMotion ל-TextStyle כדי להגדיר אם הטקסט יהיה Static(default) או מונפש. משתמשים ב-TextMotion.Animated אם הטקסט הולך לעבור שינוי גודל, תרגום או סיבוב באמצעות אנימציה. (I24dd7)

גרסה ‎1.4.0-rc01

‫8 במרץ 2023

androidx.compose.ui:ui-*:1.4.0-rc01 מופץ. גרסה ‎1.4.0-rc01 מכילה את השמירות האלה.

שינויים ב-API

  • נוסף עומס יתר של פונקציה קומפוזבילית AndroidView, שמקבלת את הפרמטר onReset. הוא מאפשר לעשות שימוש חוזר במופעים של View כשמבטלים את הצומת שלהם בקומפוזיציה ומשתמשים בו מחדש בצורה תואמת. הנתונים האלה שימושיים במיוחד לLazyRows ולLazyColumns של הצפיות. (I3f10d, b/230099236)
  • השקנו PlatformTextInputAdapter API חדש ברמה נמוכה לבניית הטמעות של קלט טקסט בהתאמה אישית, שמתקשרות ישירות עם ממשקי API של הפלטפורמה. (I58df4)

תיקוני באגים

  • הפעולה הסמנטית של BasicTextField's SetText תעדכן עכשיו את מאגר הטקסט באמצעות אותו נתיב קוד כמו עדכוני IME ופונקציות הבדיקה (לדוגמה, performTextReplacement).
  • פונקציות בדיקת הטקסט performTextClearance,‏ performTextReplacement ו-performTextSelection משתמשות עכשיו ב-SemanticsActions. ‫(I0807d, ‏ b/269633168, ‏ b/269624358)

גרסה ‎1.4.0-beta02

‫22 בפברואר 2023

androidx.compose.ui:ui-*:1.4.0-beta02 מופץ. גרסה ‎1.4.0-beta02 מכילה את השמירות האלה.

שינויים ב-API

  • הסרנו את modifierElementOf() API. במקום זאת, צריך להשתמש בהרחבה ישירה מ-ModifierNodeElement. (I2256b)
  • נוסף קריאה חוזרת (callback) חדשה Modifier.Node.onReset() שמאפשרת לאפס מצב מקומי מסוים כדי לטפל בצורה נכונה במקרה שבו נעשה שימוש חוזר ב-Layout (למשל, כפריט של LazyColumn). תוקן FocusTargetModifierNode כדי לאפס את מצב המיקוד בצורה נכונה. (I65495, ‏ b/265201972)
  • נוסף הפרמטר BlendMode לשיטות DrawScope.drawText,‏ Paragraph.paint ו-MultiParagraph.paint כדי לתמוך באלגוריתמים שונים של מיזוג כשמציירים טקסט ב-Canvas. (I57508)

תיקוני באגים

  • שופר האלגוריתם של סדר המיקוד בנגישות. לדוגמה, סרגלי הצד העליון והתחתון נקראים לעיתים קרובות יותר ראשונים ואחרונים בהתאמה (74e9c5)

גרסה ‎1.4.0-beta01

‫8 בפברואר 2023

androidx.compose.ui:ui-*:1.4.0-beta01 מופץ. גרסה ‎1.4.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • השם של PinnableContainer.PinnedHandle.unpin() שונה לrelease() (I4667a)
  • הוספנו את waitUntilNodeCount, ‏ waitUntilAtLeastOneExists, ‏ waitUntilExactlyOneExists ו-waitUntilDoesNotExist כ-API ניסיוני ל-ComposeTestRule, והרחבנו את waitUntil API כך שיקבל כל התאמה וכל מספר של צמתים. מידע נוסף זמין בכתובת ComposeTestRule. (Ifa1b9, b/226934294)
  • שינוי השם של Font.MaximumAsyncTimeout לFont.MaximumAsyncTimeoutMillis. (I07af5)
  • הוסר GoogleFont.Provider.AllFontsListUri וקושרו אליו ב-ktdoc. (I16f29)

תיקוני באגים

  • הוספת מסמכים ל-AndroidFont.fontVariationSettings (I7d9e2)

גרסה ‎1.4.0-alpha05

‫25 בינואר 2023

androidx.compose.ui:ui-*:1.4.0-alpha05 מופץ. גרסה ‎1.4.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו עומסים חדשים לניסויים לפונקציה runComposeUiTest ולפונקציות create*ComposeRule שמקבלות פרמטרים מסוג CoroutineContext. ההקשר ישמש להרכבת הבדיקה ולכל קריאות LaunchedEffect ו-rememberCoroutineScope() בהרכבה. ‫(I10614, ‏ b/265177763)
  • הוספת API חדש למעקב אחר מהירות חד-ממדית (If5a82)
  • החשבון FocusRequester מסומן עכשיו כ@Stable. (I580ee)
  • מסירים הערה ניסיונית מהבונה DialogProperties שמקבל פרמטר usePlatformDefaultWidth. (Ic4048)
  • נוספה פונקציה לחישוב המיקום והמשיק במרחק מסוים בנתיב – עם PathMeasure.getPosition() ו-PathMeasure.getTangent() (I3b47c)
  • הוסר setter ציבורי שנחשף בטעות ב-PlatformParagraphStyle. (I07f47)
  • מידע נוסף על סוגים/ערכי null של פונקציות מוטמעות/מוסתרות שהוצאו משימוש (I24f91)
  • מוסיפים AnnotatedString.hasStringAnnotations לשאילתה כדי לחפש הערות עם הקצאות אפס. ‫(I94dfe, ‏ b/246960758)
  • נוספה פונקציית עומס יתר חדשה ל-TextMeasurer.measure שמקבלת String כטקסט. ‫(I47b2d, ‏ b/242705342)
  • ממשקי ה-API‏ LineBreak ו-Hyphens ב-TextStyle עברו לגרסה יציבה. (Ic1e1d)

External Contribution

  • השיטות notifyFocusedRect ב-TextInputSession וב-TextInputService לא הוצאו שוב משימוש. ‫(I23a04, ‏ b/262648050)

גרסה ‎1.4.0-alpha04

‫11 בינואר 2023

androidx.compose.ui:ui-*:1.4.0-alpha04 מופץ. גרסה ‎1.4.0-alpha04 מכילה את השמירות האלה.

תכונות חדשות

  • נוסף API חדש של PinnableContainer שמאפשר להצמיד פריטים ברשימה עצלה, כדי שהם לא יימחקו כשמגלגלים אותם מחוץ לגבולות. לדוגמה, Modifier.focusable() משתמש במנגנון הזה כדי להצמיד את הפריט שמוצג כרגע. (Ib8881, ‏ b/259274257, ‏ b/195049010)
  • מערכת המיקוד נכתבה מחדש באמצעות ממשקי ה-API הניסיוניים החדשים של Modifier.Node. (I7f4d7, ‏ b/247708726, ‏ b/255352203, ‏ b/253043481, ‏ b/247716483, ‏ b/254529934, ‏ b/251840112, ‏ b/251859987, ‏ b/257141589)
  • נוספה תכונת הסמנטיקה IsContainer בפלטפורמות השונות של Google. הנכס הזה ישמש בשינוי מאוחר יותר שקובע את סדר המעבר בין רכיבים על סמך המשמעות הסמנטית של רכיבים כמו משטחים. (I63379)
  • נוסף תפקיד נגישות חדש DropdownList. אפשר להשתמש במאפיין הזה כדי לשכפל את ההתנהגות של TalkBack's כשמתמקדים ב-android.widget.Spinner. (I177e5, b/236159001)
  • עכשיו אפשר להשתמש ב-PlatformTextStyle(emojiSupportMatch) כדי להשבית את העיבוד של תמיכת האמוג'י בפסקה אחת. (Ia7100, ‏ b/139326806)
  • בדיקות ממשק משתמש של Android Compose יפעילו עכשיו מעברי פריסה לכל פריים כשמבצעים פריים כדי להגיע למצב בלי פעילות (למשל באמצעות waitForIdle). יכול להיות שהשינוי הזה ישפיע על בדיקות שמאמתות פריים ספציפי של אנימציות פריסה. ‫(I8ea08, ‏ b/222093277)
  • נוספה התכונה הניסיונית TextMotion ל-TextStyle כדי להגדיר אם הטקסט יהיה Static(default) או מונפש. משתמשים ב-TextMotion.Animated אם הטקסט הולך לעבור שינוי גודל, תרגום או סיבוב באמצעות אנימציה. (I24dd7)

שינויים ב-API

  • הארגומנט maxSize: IntSize ב-drawText הוחלף ב-size: Size כדי להתאים לפונקציות אחרות של DrawScope. כברירת מחדל, size מוגדר כ-Size.Unspecified, ולא אמור לשנות את התנהגות ברירת המחדל הקודמת. (Icd27d)
  • הוסר בנאי הגופנים הניסיוני שיצא משימוש. ‫(I8a724, ‏ b/261435386)
  • למחלקת הנתונים של כלי ה-UI‏ Group יש עכשיו שדה, isInline, שמציין אם הקבוצה היא לקריאה לפונקציה קומפוזבילית מוטמעת. אם isInline הוא true, הקריאה היא לפונקציה קומפוזבילית בתוך שורה. עם זאת, הערך עשוי להיות false לקריאות לפונקציות מוכללות שניתנות להרכבה, שמגיעות ממודולים שעברו קומפילציה עם גרסה של תוסף קומפילציית ה-Compose שלא יוצרת את פרטי הפונקציה המוכללת. (Idb846)
  • העברנו מספר ממשקי API שהיו ניסיוניים בעבר למצב יציב
  • ‫Rotary Scroll Event API יציב עכשיו (I42ad3, ‏ b/261561229)
  • FontVariation API יציב עכשיו (I8779f, ‏ b/241016309)
  • כל הקונסטרוקטורים של Font() הם עכשיו API יציב (I5948b, ‏ b/261435386)
  • DeviceFontFamilyName יציב עכשיו (I8b640, ‏ b/261435386)
  • הקונסטרוקטור AndroidFont עם variationSettings הוא עכשיו API יציב, ואפשר להשתמש בו כדי ליצור סוגים חדשים של מתארי גופנים. ‫(I5adcc, ‏ b/261565807)
  • ממשק ה-API ‏createFontFamilyResolver יציב עכשיו. אפשר להשתמש בזה כדי לזהות חריגים שלא נתפסו במהלך טעינה אסינכרונית של גופנים. (Ibb481, ‏ b/261435386)
  • ממשק ה-API ‏Font.loadingStrategy יציב עכשיו. ‫(I5937c, ‏ b/261435386)
  • ממשק ה-API ‏GoogleFont יציב עכשיו. ‫(Ic90b0, ‏ b/261435386)
  • TextUnit(float, TextUnitType) הוא עכשיו API יציב. (I90c84, ‏ b/261561612)
  • pluralStringResource הוא עכשיו API יציב. (I09849, ‏ b/261439703)

גרסה ‎1.4.0-alpha03

‫7 בדצמבר 2022

androidx.compose.ui:ui-*:1.4.0-alpha03 מופץ. גרסה ‎1.4.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • מתבצע תהליך הסרה של הקובץ ExperimentalComposeUiApi מהתיקייה PointerIcon (I23af8)
  • הוספנו פעולות נגישות בדף: PageUp, PageDown, PageLeft, PageRight. הערה: האפשרויות האלה זמינות רק מ-API 29. (Ida4ab)
  • העדכון של תצוגת הפרמטר rememberNestedScrollConnection מתצוגת הבסיס לתצוגת המארח. (Ia5200)
  • נוסף Modifier API לשליחת שאילתות לגבי פרטי גלילה של רכיבי צאצא. (I2ba9d, ‏ b/203141462)
  • המאפיין הזה משמש ב-Clickable כדי להשהות אינטראקציות של לחיצה בצורה נכונה, במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
  • תוקנה הבעיה שבה Clickables לא עיכב את האדוות בצורה נכונה, כשנעשה בו שימוש בתוך Scrollable ViewGroup.
  • עדכנו את מגירות הצד ואת הגיליונות כדי להשהות לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
  • שם המאפיין CompositingStrategy.Always שונה ל-Offscreen כדי לציין שהמאפיין graphicsLayer תמיד יעבור עיבוד לתוך מאגר ביניים (I47dc1)
  • פריסה עם יותר מדי משבצות תוכן יציבה עכשיו (I10566, ‏ b/248294649)
  • הוספנו ממשקי API חדשים ניסיוניים PerfettoTrace.record {} ו-PerfettoTraceRule כדי ללכוד עקבות של Perfetto (שנקראים גם עקבות מערכת) כחלק מבדיקה, כדי לבדוק את התנהגות הבדיקה והביצועים שלה. (I3ba16)
  • בבדיקות ממשק משתמש באמצעות כלל Compose, המשכי הפעולה שמתחדשים במהלך קריאות חוזרות (callbacks) של withFrameNanos לא יישלחו עד שכל הקריאות החוזרות של המסגרת יסיימו לפעול. ההתנהגות הזו זהה להתנהגות של כתיבת הודעה כשהיא פועלת כרגיל. עם זאת, בדיקות שמסתמכות על ההתנהגות הישנה עלולות להיכשל. השינוי הזה אמור להשפיע רק על קוד שמבצע קריאה ישירה ל-withFrameNanos או ל-withFrameMillis, וכולל לוגיקה מחוץ לקריאות החוזרות שמועברות לפונקציות האלה, שאולי צריך להעביר אותה לתוך הקריאות החוזרות. דוגמאות לשינויים בבדיקת האנימציה מופיעות ברשימת השינויים הזו.
  • נוסף פרמטר אופציונלי onPerformTraversals: (Long) -> Unit ל-constructor ולפונקציית factory של TestMonotonicFrameClock כדי להריץ קוד אחרי הקריאות החוזרות (callbacks) של withFrameNanos אבל לפני חידוש הקורוטינות של המתקשרים. (Idb413, ‏ b/254115946, ‏ b/222093277, ‏ b/255802670)
  • נוספה EmojiCompat ל-Compose (Ibf6f9, b/139326806)
  • נוסף פרמטר טפט חדש ל-@Preview לתמיכה בצבע דינמי (I9f512)

תיקוני באגים

  • ההתראות על החלת תמונת המצב נשלחות עכשיו אחרי ש-Recomposer מסיים להחיל את השינויים. ‫(Iad6c0, ‏ b/222093277)
  • הוספנו שינויים בגרסה captureToImage כדי לאפשר צילום מסך של ריבוי חלונות. האפשרות הזו שימושית לבדיקות של צילומי מסך שמשתמשים בחלונות קופצים של Compose. (I169c5)

עדכונים של יחסי תלות

  • ממשק המשתמש של Compose ו-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. תמיד יוצג מאגר זמני מחוץ למסך, שבו 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 נייטיב קיים ל-Paint של Compose. (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 יש עכשיו method‏ append(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 כשמצב התצוגה של Compose נשמר על ידי Activity. ‫(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)

תיקוני באגים

  • BackHandler API של 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(…): Modifier
  • abstract class ModifierNodeElement
  • abstract class Modifier.Node
  • abstract class DelegatingNode
  • interface LayoutModifierNode
  • interface DrawModifierNode
  • interface SemanticsNode
  • interface PointerInputNode
  • interface ModifierLocalNode
  • interface ParentDataModifierNode
  • interface LayoutAwareModifierNode
  • interface GlobalPositionAwareModifierNode
  • interface IntermediateLayoutModifierNode

שינוי התנהגות שעלול לגרום לכשל

הגובה המקסימלי שנתמך בתיבות דו-שיח ובחלונות קופצים הופחת ל-8dp.

הגובה המקסימלי שנתמך בתיבות דו-שיח ובחלונות קופצים של כתיבה הופחת מ-30dp ל-8dp. השינוי הזה משפיע גם על דיאלוגים וחלונות קופצים של Material וגם על דיאלוגים וחלונות קופצים של ממשק משתמש בהתאמה אישית. השינוי הזה נעשה כדי לצמצם את ההשפעה של באג נגישות בגרסאות Android שמתחת לגרסה S, וכדי לוודא ששירותי הנגישות בחלונות האלה יוכלו ליצור אינטראקציה עם התוכן בתיבת הדו-שיח או בחלון הקופץ.

השינוי הזה ישפיע עליכם רק אם אתם יוצרים הטמעה של תיבת דו-שיח או חלון קופץ מותאמים אישית עם הגבהה שמוגדרת לרמות גבוהות מ-8dp. כדאי להקטין את הגובה של תיבת הדו-שיח או החלון הקופץ. אם אתם רוצים לבטל את ההצטרפות להתנהגות החדשה הזו, אתם יכולים ליצור העתק (Fork) של תיבת הדו-שיח או החלון הקופץ עם ההגדרה הרצויה של ההרשאה. הפעולה הזו לא מומלצת, כי היא עלולה לפגוע בנגישות. המפתחים צריכים לוודא שניתן להפעיל את החלק התחתון של תיבת הדו-שיח או החלון הקופץ ולקרוא אותו באמצעות שירותי נגישות.

שינויים ב-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 עתידיים של clamping. (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)
  • הוספת FontVariation API להגדרה ולשימוש בגופנים משתנים. (I3c40c, ‏ b/143703328)
  • ה-constructor‏ LineHeightStyle.Alignment הוא עכשיו ציבורי (בשלב ניסוי) (I4bbbe, ‏ b/235876330)
  • התג Paragraph הוא עכשיו expect|actual ומוגדר ל-Android ולמחשב. (Id387e, ‏ b/239962983)
  • הממשק Paragraph הוא עכשיו ממשק חתום Paragarph. אין תרחיש לדוגמה שבו יש צורך ביצירת מחלקת משנה של פסקה, ואנחנו ממליצים לפנות אלינו אם השינוי הזה משפיע עליכם. (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 תומכים עכשיו בתחביר של Kotlin in לקריאה לפונקציה 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. במקרה של הכלי לבדיקת פריסה, השיפור בביצועים הוא בערך פי 10. (I5e113)
  • השתנה: תצוגה מקדימה של Compose מאוחסנת בקובצי פלט בינאריים, כדי לאפשר למפתחים לכתוב הערות MultiPreview ולעשות בהן שימוש חוזר מתוך ספריות. (I85699, ‏ b/233511976)

תיקוני באגים

  • כשמוסיפים אירועים של InputEventChange ל-Velocity Tracker, המערכת תתייחס עכשיו לדלתאות במקום למיקומים. כך מובטח שהמהירות תחושב בצורה נכונה בכל המקרים, גם אם רכיב היעד זז (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 פועלת עכשיו באמצעות BeyondBoundsLayout core API החדש
    • ממשקי API חדשים להתאמה אישית של התנהגות ב-FocusOrder וב-FocusProperties
    • שיפור ההתנהגות עם מקלדת פיזית או שלט לטלוויזיה
  • ממשקי 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 שמקבלים אותה.
  • הפונקציה הניסיונית 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.

    הפונקציות הספציפיות ל-Android‏ interface AndroidComposeUiTest ו-fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit) מתווספות כדי לספק גישה לפעילות הבסיסית, בדומה ל-AndroidComposeTestRule. כדי לקבל שליטה רבה יותר, אפשר ליצור מופע של class AndroidComposeUiTestEnvironment בעצמכם.

    ההטמעה במחשב היא class DesktopComposeUiTest, אבל אין כרגע פונקציות הפעלה ספציפיות למחשב.

    אפשר להעביר בדיקה מ-ComposeTestRule ל-ComposeUiTest באופן הבא (דוגמה ל-Android). מאת:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @get:Rule val rule = createComposeRule()
        @Test
        fun test() {
            rule.setContent {
                Text("Hello Compose!")
            }
            rule.onNodeWithText("Hello Compose!").assertExists()
        }
    }
    

    אל:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @Test
        @OptIn(ExperimentalTestApi::class)
        fun test() = runComposeUiTest {
            setContent {
                Text("Hello Compose!")
            }
            onNodeWithText("Hello Compose!").assertExists()
        }
    }
    
  • בשלב הזה, ComposeContentTestRule ו-ComposeTestRule לא נגזרות מ-ComposeUiTest, מה שאומר שעדיין אי אפשר להפעיל פונקציות של תוספים ב-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)
  • בפסקאות ובפסקאות מרובות, המיקום של הארגומנטים שונה כך שהם מופיעים לפני הארגומנטים האופציונליים. (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 שמבוססות על snapshot, אבל רוצים לקרוא את הערך בלי לגרום לרה-קומפוזיציה או למדידה מחדש מיותרות. (I9f365, b/214054486)
  • מאפיין התוסף consumeWindowInsets של ComposeView מאפשר למפתחים להשבית את הצריכה של WindowInsets ב-Android. כך כל ComposeViews בהיררכיה יכול להחיל WindowInsets בנפרד בלי להפריע אחד לשני. (I0ef08, b/220943142)
  • הוספנו את KeyboardType.Decimal כחלופה ל-Keyboard.Number כדי לכלול במיוחד מפריד עשרוני ב-IME. ‫(Iec4c8, ‏ b/209835363)
  • PointerEventType.Scroll ו-PointerEvent.scrollDelta הם עכשיו ממשקי API יציבים (I574c5, ‏ b/225669674)
  • הפעלה של יכולת פעולה הדדית של גלילה מקוננת בין View ל-Compose עבור מחלקות View שפועלות יחד. כלומר, עכשיו אפשר לשלוח את ההפרשים של הגלילה לרכיב View אב (שמשתף פעולה). (I5d1ac, b/174348612)
  • בוצע עדכון של FontFamily.Resolver כדי לשלב את הגדרת הנגישות של טקסט מודגש בכל המערכת (I6c1e7)
  • המאפיין Font(AssetManager, String, ...) הוצא משימוש והוחלף במאפיין Font(String, AssetManager, ...). זהו API ניסיוני. (I1c7a4)
  • מוסיפים מתאר גופן חדש Font(DeviceFontFamilyName) כדי לחפש גופנים שמותקנים במערכת במהלך שרשראות של גופנים חלופיים. (I30468, b/219754572)
  • נוספה הגדרת תאימות זמנית ל-includeFontPadding ב-TextStyle/ParagraphStyle. אפשר לשנות את includeFontPadding דרך TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)). זו אפשרות הגדרה זמנית שנועדה לאפשר העברה, והיא תוסר בהמשך. (If47be, b/171394808)
  • הוספת התוסף GoogleFont.Provider.isAvailableOnDevice לקבלת עזרה בניפוי באגים. (I64e31)
  • הוספת בנאי GoogleFont.Provider לשימוש עם @ArrayRes (Ic5ee1, ‏ b/225984280)
  • Compose GoogleFont נקרא עכשיו Font(GoogleFont), ה-API נשאר יציב בכל שאר המקרים. (I125f2)

תיקוני באגים

  • הוספנו בדיקת lint ל-material/Scaffold כדי לוודא שנעשה שימוש בריווח הפנימי (Ifb111)

גרסה ‎1.2.0-alpha06

‫23 במרץ 2022

androidx.compose.ui:ui-*:1.2.0-alpha06 מופץ. גרסה ‎1.2.0-alpha06 מכילה את השמירות האלה.

שינויים ב-API

  • נוספה פעולת סמנטיקה RequestFocus כדי לבקש התמקדות ביעד שאפשר להתמקד בו. (I17b71)
  • עדכון של ניתוח התוכן של נכסי וקטורים שניתנים לציור כדי לתמוך בשיקוף אוטומטי, במטרה להפוך את התוכן של VectorPainter אם כיוון הפריסה הנוכחי הוא מימין לשמאל. (I79cd9, ‏ b/185760237)
  • הצבעים של הצללה/האווירה עודכנו כך שיהיו פרמטרים נגררים של Modifier.graphicsLayer לצורך תאימות ל-API (I3f864, ‏ b/160665122)

  • נוספו הטמעות ברירת מחדל לצבע הצללית/הסביבה ב-GraphicsLayerScope כדי להבטיח שינויים ב-API שלא יגרמו לבעיות

  • הוספת משך האירוע לאירועים ב-RSB‏ (Ief8ae)

  • החשבון FocusOrder מוזג עכשיו עם FocusProperties, ולחשבון focusProperties() יש עכשיו את כל היכולות של focusOrder(). התכונות FocusOrder ו-focusOrder() הוצאו משימוש. ‫focusOrder() שמקבל focusRequester צריך להיות מוחלף בשינוי focusRequester() בשילוב עם focusProperties(). כך אפשר להפריד טוב יותר בין הדאגות של שינויי ההתנהגות. (I601b7)

  • שדרוג של RecyclerView וגם של Compose ישפר משמעותית את ביצועי הגלילה של RecyclerViews עם תצוגות Compose כרכיבי צאצא.

  • הוספת ViewCompositionStrategy.Default כאמצעי לאחזור אסטרטגיית ברירת המחדל המובנית

  • מוסיפים את ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer, שהיא שיטת ברירת המחדל החדשה, ומטפלת בצורה נכונה במאגרי תגים משותפים כמו RecyclerView. (If7282)

  • נוספה תמיכה בהוספת הערות למחלקות של הערות באמצעות @Preview כשלב ראשון בהוספת התכונה Multipreview. אפשר להשתמש בהערות כאלה כדי להוסיף הערות לשיטות Composable או למחלקות הערות אחרות, שאז ייחשבו כהערות שנוספו באופן עקיף באמצעות @Preview. (I12eff)

  • מכשירים להתייחסות נוספו לרשימת המכשירים ב-@Preview (I071c9)

תיקוני באגים

  • ממשקי API של גרפיקה וקטורית עודכנו כך שישתמשו בהערה הנכונה שאפשר להרכיב @VectorComposable במקום @UiComposable (I942bc)
  • הסרת crossinline מ-AnnotatedString.Builder.withStyle (If84d5)

External Contribution

  • compose-ui: נוספו המאפיינים 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)
  • עודכן מצב ה-nullability בליבת ה-appcompat כדי להתאים ל-Tiramisu DP2‏ (I0cbb7)
  • הממשק שנמדד חושף עכשיו את המאפיין parentData ‏ (I3313f)
  • הממשק של Modifier.onPlaced ושל OnPlacedModifier יציב עכשיו. (Ib5482)
  • איזה כיף! האנימציה של יצירת הודעה תומכת עכשיו בהגדרה 'קנה מידה למשך זמן אנימציה' מתוך 'אפשרויות למפתחים'. ‫(I5a4fc, ‏ b/161675988)
  • נוסף משנה BeyondBoundsLayout local ‏ (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 שמאפשרים דיווח בזמן קומפילציה על מצב שבו פונקציה קומפוזבילית מופעלת בטירגוט של רכיב Applier שלא נועד לשימוש בה.

    ברוב המקרים, אפשר להסיק את ההערות האלה באמצעות תוסף מהדר Compose, ולכן השימוש בהערות האלה ישירות צריך להיות נדיר . המקרים שבהם אי אפשר להסיק כוללים יצירה ושימוש בפונקציית החלה מותאמת אישית, פונקציות מופשטות שניתנות להרכבה (כמו שיטות ממשק), שדות או משתנים גלובליים שהם ביטויי למדה שניתנים להרכבה (משתנים מקומיים ופרמטרים נגזרים), או כשמשתמשים ב- ComposeNode או בפונקציות קשורות שניתנות להרכבה.

    במקרה של פונקציות מותאמות אישית, הפונקציות המורכבות שקוראות ל-ComposeNode או ל-ReusableComposeNode צריכות להוסיף הערה ComposableTarget לפונקציה ולכל סוגי הפרמטרים של lambda שניתנים להרכבה. עם זאת, מומלץ ליצור הערה שמסומנת באמצעות ComposableTargetMarker ואז להשתמש בהערה המסומנת במקום ComposableTarget ישירות. הערה קומפוזבילית, שמסומנת ב-ComposableTargetMarker, שווה ל-ComposbleTarget עם השם המוגדר במלואו של מחלקת המאפיינים כפרמטר של ממשק ההחלה. דוגמה לשימוש ב-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 class RenderNode (I1e659, b/216660268)
  • נוסף API חדש שמאפשר למדוד מראש את הרכיבים של SubcomposeLayout שהרכבתם מראש. (I857ea)
  • נוספה הפונקציה movableContentOf שממירה lambda קומפוזבילי ל-lambda שמעביר את המצב שלו, ואת הצמתים התואמים, לכל מיקום חדש שבו הוא נקרא. כשהשיחה הקודמת יוצאת מהקומפוזיציה, המצב נשמר באופן זמני, ואם שיחה חדשה ל-Lambda נכנסת לקומפוזיציה, המצב והצמתים המשויכים מועברים למיקום של השיחה החדשה. אם לא נוספת שיחה חדשה, המצב מוסר באופן סופי והתראות נשלחות למשתמשים שרשומים לקבלת עדכונים.

    אם קוראים ל-movableContentOf lambda כמה פעמים באותה קומפוזיציה, נוצרים מצב וצמתים חדשים לכל קריאה. כשהקריאות יוצאות מהקומפוזיציה ונכנסות קריאות חדשות, המצב מועבר מהקריאות הראשונות שיוצאות לקריאות שנכנסות, לפי הסדר שבו הן נקראות. כל המידע שלא נדרש לשיחות חדשות מוסר באופן סופי. (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.ResourceLoaded API כדי לתמוך בטעינת גופנים אופציונלית ואסינכרונית. לא מומלץ למפתחי אפליקציות להשתמש בממשק ה-API הזה ישירות. כדי להוסיף סוגים חדשים של גופנים, אפשר לעיין במאמר AndroidFont.

  • פונקציית ההרחבה Font.AndroidResourceLoader מאפשרת ליצור Font.ResourceLoader כשלא מדובר בהרכבה.

  • הוספנו את הפרמטר loadingStrategy לגופנים מבוססי-משאבים, כדי לאפשר טעינה אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים להורדה. (Ie5aea, ‏ b/174162090)

  • הקונסטרוקטור Typeface(FontFamily) הוצא משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, וההורדה של גופנים להורדה עשויה להימשך עד 10 שניות. בגופנים שאפשר להוריד, הקריאה הזו עשויה להיחסם למשך 10 שניות. במקומה, צריך להשתמש ב-method‏ 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.resolve returns State<Any> (I4406c, b/174162090)

תיקוני באגים

  • שדות הטקסט יישארו מעל המקלדת כשהם במצב ממוקד והמקלדת מוצגת, כשמצב הקלט הרך הוא ADJUST_PAN. (I8eaeb, b/190539358, b/192043120)
  • ‫Desktop משתמש ב-composition local ל-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 ניסיוני שמאפשר לשלוח בקשה להורים כדי שהם יגללו כדי להציג פריט (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 ובמוצרים נוספים. (I8fe1f)

תיקוני באגים

  • ‫AndroidView מעביר עכשיו את LocalLifecycleOwner ואת LocalSavedStateRegistryOwner לתצוגה שלו דרך ViewTreeLifecycleOwner ו-ViewTreeSavedStateRegistryOwner. (I38f96, ‏ b/179708470)
  • תיקנו בעיה שבה לפעמים לא ניתן להשתמש בתכונה SwipeToDismissBox ב-WearOS כדי לסגור אפליקציות. (I9387e)
  • ברירת המחדל של הזמן בין אירועי קלט מוזרקים השתנתה מ-10ms ל-16ms. הדבר עלול לשנות את התוצאה של בדיקות שמבצעות מחוות קלט, כמו החלקה ספציפית. (I829fd)

גרסה ‎1.1.0-alpha05

‫29 בספטמבר 2021

androidx.compose.ui:ui-*:1.1.0-alpha05 מופץ. גרסה ‎1.1.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו תמיכה בתקשורת בין משנים (Id5467, ‏ b/198826874)
  • הוספנו מצביעים היסטוריים ניסיוניים ל-PointerEventChange. (Ic1fd8, ‏ b/197553056, ‏ b/199921305)
  • הוספת את density: Density ואת layoutDirection: LayoutDirection אל LayoutInfo. כך צרכני LayoutInfo יכולים לפרש את המאפיינים והמיקום שנחשפים ב-LayoutInfo כראוי. (I002f1)
  • נוספה תמיכה ניסיונית בהחדרת אירועי עכבר. משתמשים ב-performMouseInput כדי להתחיל לשלוח אירועי עכבר, או שולחים אירועי עכבר דרך המאפיין Mouse של MultiModalInjectionScope במהלך תנועת קלט רב-אופני עם performMultiModalInput. מידע נוסף מופיע בMouseInjectionScope. (Iaa4a8, ‏ b/190493367)

תיקוני באגים

  • תוקנה תמיכת הנגישות ברכיבים שניתן לגלול בהם (גם כאלה שנטענים באופן עצלני וגם כאלה שלא) בהקשר של גלילה (I6cdb0)
  • שיפור של TouchInjectionScope.swipeWithVelocity. הוא מקבל עכשיו מגוון רחב יותר של משתני קלט ויציע שינויים בקלט אם לא ניתן ליצור החלקה (I40fbe, ‏ b/182477143)

גרסה ‎1.1.0-alpha04

‫15 בספטמבר 2021

androidx.compose.ui:ui-*:1.1.0-alpha04 מופץ. גרסה ‎1.1.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

  • PointerEvent כולל עכשיו PointerEventType לתמיכה באירועי ריחוף. (I091fa)
  • מאפשרים לילדים לקבל קלט מצביע מחוץ לגבולות הקלט של המצביע של ההורה. הורים יכולים ליירט את הקריאות האלה באמצעות המאפיין PointerInputScope.alwaysInterceptChildEvents ‏ (I9eae3, ‏ b/192479655)
  • הוצאו משימוש performGesture ו-GestureScope, שהוחלפו ב-performTouchInput וב-TouchInjectionScope. ‫(Ia5f3f, ‏ b/190493367)
  • נוסף touchBoundsInRoot אל SemanticsNode שכולל את הגודל המינימלי של משטח המגע, כדי שמפתחים יוכלו לוודא שמשטחי המגע עומדים בדרישות המינימליות של נגישות. (I2e14b, ‏ b/197751214)
  • ביצוע מחדש של הטמעה של inspectable (I927bc, b/191017532)
  • שם הפרמטר של inspectable שונה כדי להתאים לפרמטר המורכב (I3a482, ‏ b/191017532)
  • הוספנו את performTouchInput ואת TouchInjectionScope כתחליף ל-performTouchInput ול-TouchInjectionScope, כדי לאפשר שימוש באמצעים אחרים (כמו עכבר).

    ל-TouchInjectionScope יש את אותם methods כמו ל-GestureScope, למעט movePointerTo ו-movePointerBy, ששמותיהם שונו ל-updatePointerTo ו-updatePointerBy. כל שאר השיטות זהות.

    ההתנהגות של TouchInjectionScope כמעט זהה לזו של GestureScope, עם שני הבדלים קטנים:

    1. כששולחים אירוע down בזמן שהסמנים הוזזו בלי לשלוח אירוע move (במילים אחרות, נעשה שימוש ב-updatePointerTo(), אבל לא ב-move(), ואז מפעילים את down()), ההטמעה הקודמת הייתה מקדמת את זמן האירוע ושולחת אירוע move לפני שליחת אירוע down. ההטמעה החדשה עדיין שולחת את אירוע ההעברה, אבל לא מקדמת את זמן האירוע בתרחיש הספציפי הזה.
    2. כששולחים אירוע up בזמן שהסמנים הוזזו בלי לשלוח אירוע move (בדומה למה שצוין למעלה), ההטמעה הקודמת הייתה מקדמת את שעת האירוע ושולחת אירוע move לפני שליחת אירוע up. ההטמעה החדשה לא עושה את זה: המיקומים החדשים של מצביעי העכבר יבואו לידי ביטוי רק דרך אירוע ה-up.

    לבסוף, TouchInjectionScope מציגה שיטה חדשה currentPosition(pointerId: Int) לקבלת המיקום הנוכחי של המצביע הנתון. (If1191, ‏ b/190493367)

תיקוני באגים

  • מאפשרים לחיתוך להרחיב את גבולות משטח המגע מעבר לאזור החיתוך למטרות של משטח מגע מינימלי. ‫(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 עודכן כך שיהיה תלוי ב-Kotlin 1.5.30. (I74545)

שינויים ב-API

  • נוסף Modifier.inspectable כדי לעטוף משנים אחרים. (I1909b, ‏ b/191017532)
  • הוספנו את BlurredEdgeTreatment API כדי לפשט את תרחישי השימוש בטשטוש לשילובים נפוצים יותר של דגלי קליפים ו-TileModes. ברוב תרחישי השימוש, התוכן המטושטש מוצג מחוץ לגבולות התוכן המקורי, והאזורים שמחוץ לגבולות האלה מטושטשים בשחור שקוף. לחלופין, התוכן נחתך לגבולות התוכן, והדגימה של הקצה הקרוב ביותר מתבצעת עבור ליבות הטשטוש שחורגות מגבולות התוכן. (I6b4b7, b/166927547)
  • הוספנו תמיכה ב-RenderEffect ב-Compose לשולחן העבודה. הוספנו את OffsetEffect ואת modifier לטשטוש כדרך פשוטה להוסיף אפקטים חזותיים של טשטוש לחלק מהיררכיית הקומפוזיציה. (I0f6aa, ‏ b/166927547)
  • השקנו את RenderEffect API שאפשר להגדיר אותו באופן אופציונלי ב-Modifier.graphicsLayer כדי לשנות את התוכן של השכבה עצמה. אפשר להשתמש בשיטה הזו כדי לטשטש את התוכן של רכיב קומפוזבילי ושל רכיבים קומפוזביליים צאצאים בהיררכיית קומפוזיציה. (I47c4d, b/166927547)
  • ל-AwaitPointerEventScope יש עכשיו withTimeout()‎ ו-withTimeoutOrNull()‎ (I507f0, ‏ b/179239764, ‏ b/182397793)
  • הוספנו גודל מינימלי של משטח המגע ל-ViewConfiguration לשימוש בסמנטיקה ובקלט של מצביע, כדי להבטיח נגישות. (Ie861c)
  • הוספת תמיכה ב-TileMode.Decal, שימושי להגדרת התנהגות הקצה עבור RenderEffects מבוססי-טשטוש. ‫(I7e8ed, ‏ b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction ו-hasScrollToKeyAction הם עכשיו API יציב (I142ae, ‏ b/178483889)
  • נוספה שיטת בדיקה כדי לקבל את הגבולות של האזור שנחתך. (I6b28e)

תיקוני באגים

  • הוסרה השיטה isBounded מ-BlurredEdgeTreatment לטובת בדיקה מפורשת אם פרמטר הצורה הוא null. (I85d68)

גרסה ‎1.1.0-alpha02

‫18 באוגוסט 2021

androidx.compose.ui:ui-*:1.1.0-alpha02 מופץ. גרסה ‎1.1.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • עכשיו יש תמיכה ב-PointerEvent לקריאת מצב לחצן העכבר ומצב מקש הצירוף במקלדת. (I6310c, b/180075467)
  • עכשיו, מחוות מוזרקות משתמשות בזמן של MainTestClock כמקור האמין לזמן. השעה הנוכחית של אירועים מוזרקים ב-performGesture תאותחל לשעה הנוכחית של MainTestClock. (Ifb364, ‏ b/192064452)
  • נוסף בנאי DpRect(DpOffset, DpSize) (‏I2cf16, ‏b/194219828)
  • נוסף סיווג DpSize ‏ (I7abb1, ‏ b/194219828)

תיקוני באגים

  • בוצע עדכון של ניתוח ה-XML של גרפיקה וקטורית כדי לתמוך ב-ColorStateLists כמאפייני גוון צבע בסיסיים ב-VectorDrawables. ‫(I86915, ‏ b/195668138)

גרסה ‎1.1.0-alpha01

4 באוגוסט 2021

androidx.compose.ui:ui-*:1.1.0-alpha01 מופץ. גרסה ‎1.1.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

  • הפרמטר RelocationRequester.bringIntoView מקבל עכשיו מלבן כפרמטר, מה שמאפשר לנו להציג חלק מפריט שאפשר להרכיב (Ice2c5,‏ b/194330245)
  • AnimatedImageVector וכל ממשקי ה-API שקשורים אליו נמצאים עכשיו במודול androidx.compose.animation:animation-graphics החדש. (I60873)
  • נוספה התאמה ניסיונית לטיפול בבקשות להעברה. ‫(I65a97, b/178211874)
  • הוספנו את BrushPainter API כדי לתמוך בציור של Brush שרירותי בתוך Painter, בדומה ל-ColorPainter

    בוצע עדכון של Brush API כך שיכלול פרמטר של גודל פנימי שנשלחת לגביו שאילתה ב-BrushPainter ‏ (Ia2752, ‏ b/189466433)

  • השיטה DrawScope#drawImage עודכנה כך שתצרוך פרמטר FilterQuality אופציונלי, בנוסף לפרמטרים הקיימים של מקור ושל יעד. האפשרות הזו שימושית לאומנות פיקסלים שנועדה להיות מפוקסלת כשמגדילים אותה. העדכון של BitmapPainter + Image composable כולל גם שימוש בפרמטר אופציונלי FilterQuality (Ie4fb0, b/180311607)

  • נוספה שיטת GestureScope.advanceEventTime כדי לשלוט טוב יותר בתזמון של אירועים במחוות (Ibf3e2)

תיקוני באגים

  • כדי לשפר את התמיכה בשרשור של משני ציור, צריך לוודא שההטמעה של Modifier.paint קוראת ל-drawsContent. בעבר, הפונקציה Modifier.paint הייתה אמורה להיות צומת עלים בשרשרת של פונקציות Modifier, אבל בגלל זה אי אפשר היה להגדיר אותה במאגר שניתן להרכבה (למשל, box) או להוסיף קישוטים נוספים מעל, כמו Modifier.paint().border(). הוספנו את הקריאה Modifier.paint ל-drawContent אחרי שציירנו את התוכן של האובייקט painter שצוין, כדי לשפר את העקביות בהתנהגות של התבנית modifier. (Ibb2a7, ‏ b/178201337, ‏ b/186213275)
  • תיבות הדו-שיח פועלות עכשיו לפי התנהגות הגודל של הפלטפורמה. כדי לשנות את ההתנהגות הזו, צריך להגדיר את הערך usePlatformDefaultWidth ל-false. (Iffaed, b/192682388)
  • הועבר InfiniteAnimationPolicy אל :compose:ui (I5eb09, ‏ b/160602714)
  • הגלילה באמצעות פעולות סמנטיות ברשימות עצלות וברכיבי גלילה רגילים מונפשת עכשיו (Id9066, b/190742024)

גירסה 1.0

גרסה 1.0.5

‫3 בנובמבר 2021

androidx.compose.ui:ui-*:1.0.5 מופץ. גרסה 1.0.5 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה קריסה במעקב אחר מופעים של derivedStateOf. (aosp/1792247)

גרסה 1.0.4

‫13 באוקטובר 2021

androidx.compose.ui:ui-*:1.0.4 מופץ. גרסה 1.0.4 מכילה את השמירות האלה.

עדכונים של יחסי תלות

  • העדכון כולל תלות ב-Kotlin 1.5.31

גרסה 1.0.3

‫29 בספטמבר 2021

androidx.compose.ui:ui-*:1.0.3 מופץ. גרסה 1.0.3 מכילה את השמירות האלה.

עדכונים של יחסי תלות

  • העדכון כולל תלות ב-Kotlin 1.5.30

גרסה 1.0.2

‫1 בספטמבר 2021

androidx.compose.ui:ui-*:1.0.2 מופץ. גרסה 1.0.2 מכילה את השמירות האלה.

העדכון כולל תמיכה בגרסת Compose 1.0.2. ‫Compose 1.0.2 עדיין תואם ל-Kotlin 1.5.21.

גרסה 1.0.1

4 באוגוסט 2021

androidx.compose.ui:ui-*:1.0.1 מופץ. גרסה 1.0.1 מכילה את השמירות האלה.

עדכונים של יחסי תלות

  • העדכון כולל תלות ב-Kotlin 1.5.21.

גרסה 1.0.0

‫28 ביולי 2021

androidx.compose.ui:ui-*:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.

התכונות העיקריות בגרסה 1.0.0

זו הגרסה היציבה הראשונה של Compose. פרטים נוספים זמינים בבלוג הרשמי של Compose.

בעיות מוכרות

  • אם אתם משתמשים ב-Android Studio Bumblebee Canary 4 או ב-AGP‏ 7.1.0-alpha04/7.1.0-alpha05, יכול להיות שתיתקלו בקריסה הבאה:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    כדי לפתור את הבעיה, צריך להגדיל באופן זמני את minSdkVersion ל-24 ומעלה בקובץ build.gradle. הבעיה הזו תיפתר בגרסה הבאה של Android Studio Bumblebee וב-AGP 7.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 שמאפשר לכם BackHandler לצפות בתצוגה מקדימה של רכיבי Composable שמשתמשים בממשקי API כמו BackHandler שתלויים בקיום הבעלים. (Ia1c05, ‏ b/185693006)

תיקוני באגים

  • הועבר אל InfiniteAnimationPolicy (androidx.compose.ui:ui) (I5eb09, b/160602714)
  • הסרנו באופן זמני את AnimatedImageVector כדי לשנות את מבנה המודול. ‫(I41906, b/160602714)

גרסה ‎1.0.0-beta09

‫16 ביוני 2021

androidx.compose.ui:ui-*:1.0.0-beta09 מופץ. גרסה ‎1.0.0-beta09 מכילה את השמירות האלה.

שינויים ב-API

  • שינוי enum Role ו-LiveRegionMode למחלקות מוטבעות עם בנאי פרטי (Id1890)
  • ההגדרה KeyboardCapitalization מומרת למחלקה מוטבעת. (Id5a1c)
  • משנים את HapticFeedbackType למחלקה מוטמעת. ‫(I255ec)
  • ‫Modifier.pointerInteropFilter הוא @ExperimentalComposeUiApi. (Iede6c)
  • המחלקות TextAlign, ‏ FontSynthesis ו-TextDirection הן עכשיו מחלקות מוטבעות. (I212fe)
  • המאפיין TextOverflow משתנה למחלקה מוטבעת. (I433af)
  • ‫FontStyle היא עכשיו מחלקה מוטבעת. (I9e48b)

תיקוני באגים

  • הקבועים העיקריים הם @ExperimentalComposeUiApi בשלב הזה. קוד צריכה יכול להצהיר על קבועים פרטיים לפני ייצוב. (Ia5d48)
  • עכשיו אפשר להריץ בדיקות של כתיבת הודעות ב-Robolectric. עד כה זוהו המגבלות הבאות:
    • אין מפת סיביות מקורית, ולכן ImageBitmap() מוביל ל-NullPointerException.
    • אין ציור, ולכן captureToImage() ימתין ללא הגבלת זמן למעבר הציור הבא (כלומר, הוא נכנס למצב של חסימה הדדית).
    • לא נטען גופן, ולכן המדידה של הטקסט תהיה שגויה. לכל התווים יש גובה קבוע של כ-20 פיקסלים ורוחב של פיקסל אחד.
    • ComposeTestRule.waitUntil {} לא מפעיל את ה-thread הראשי בזמן ההמתנה, ולכן הוא זהה ל-ComposeTestRule.mainClock.advanceTimeUntil {} צפוי שבעתיד יזוהו עוד מגבלות. (I284fa)

הוספת כללי פרופיל

בגרסה הזו נוספו כללי פרופיל למודולים הבאים של כתיבת הודעות (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

מהם כללי פרופיל?

  • כללי הפרופיל של ספרייה מצוינים בקובץ טקסט baseline-prof.txt שנמצא בספרייה src/main או בספרייה מקבילה. בכל שורה בקובץ מצוין כלל, ובמקרה הזה כלל הוא תבנית להתאמה לשיטות או למחלקות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט הפרופיל של ART שקריא לאנשים, שמשמש כשמשתמשים ב-adb shell profman --dump-classes-and-methods .... הכללים האלה מופיעים באחת משתי צורות, לטירגוט של שיטות או מחלקות.

  • כלל של method יכלול את התבנית הבאה:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • כלל מחלקה יכלול את התבנית הבאה:

    <CLASS_DESCRIPTOR>
    
  • כאן <FLAGS> הוא אחד או יותר מהתווים H, S ו-P כדי לציין אם לסמן את השיטה הזו כ'פופולרית', 'הפעלה' או 'אחרי הפעלה'.

  • <CLASS_DESCRIPTOR> הוא המתאר של המחלקה שאליה משתייכת המתודה המטורגטת. לדוגמה, למחלקה androidx.compose.runtime.SlotTable יהיה דסקריפטור של Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> הוא החתימה של ה-method, והוא כולל את השם, סוגי הפרמטרים וסוגי ההחזרה של ה-method. לדוגמה, לשיטה fun isPlaced(): Boolean ב-LayoutNode יש חתימה isPlaced()Z.

  • התבניות האלה יכולות להכיל תווים כלליים (**, * ו-?) כדי שכלל יחיד יכלול כמה שיטות או מחלקות.

מה עושים הכללים?

  • שיטה עם הדגל H מציינת שהשיטה הזו היא שיטה 'פעילה' וצריך לקמפל אותה מראש.

  • שיטה עם הדגל S היא שיטה שמופעלת בזמן ההפעלה, ולכן צריך לבצע קומפילציה שלה מראש כדי להימנע מהעלות של קומפילציה ופרשנות של השיטה בזמן ההפעלה.

  • מתודה עם הסימון P היא מתודה שמופעלת אחרי ההפעלה.

  • אם מחלקה מופיעה בקובץ הזה, המשמעות היא שהיא נמצאת בשימוש במהלך ההפעלה, ולכן צריך להקצות לה מראש מקום ב-heap כדי להימנע מעלות הטעינה של המחלקה.

איך זה עובד?

  • ספריות יכולות להגדיר את הכללים האלה, שייארזו בפרטי מידע שנוצרו בתהליך של פיתוח (Artifact) מסוג AAR. כשיוצרים אפליקציה שכוללת את הארטיפקטים האלה, הכללים האלה משולבים יחד, והכללים המשולבים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לאפליקציה. לאחר מכן, מערכת ART יכולה להשתמש בפרופיל הזה כשהאפליקציה מותקנת במכשירים כדי לבצע קומפילציה מראש של קבוצת משנה ספציפית של האפליקציה, וכך לשפר את הביצועים שלה, במיוחד בהפעלה הראשונה. הערה: הפעולה הזו לא תשפיע על אפליקציות שאפשר לבצע בהן ניפוי באגים.

גרסה ‎1.0.0-beta08

‫2 ביוני 2021

androidx.compose.ui:ui-*:1.0.0-beta08 מופץ. גרסה ‎1.0.0-beta08 מכילה את השמירות האלה.

שינויים ב-API

  • הסוג NestedScrollSource enum מוחלף במחלקה מוטבעת. (Ie321b, ‏ b/187055290)
  • השם של FocusManager.clearFocus(forcedClear = true) שונה ל-FocusManager.clearFocus(force = true) (Ia0c41)
  • בוצע רפקטורינג של השימוש בסוגי enum כדי להשתמש במחלקות מוטבעות, כדי למנוע בעיות בשימוש במשפטי when מקיפים כשמוסיפים ערכי enum חדשים. (I2b5eb)
  • הסרת @ExperimentalComposeUiApi מהחשבון PopupProperties. (I01fa6)
  • הערך PointerType השתנה מסוג enum לסוג inline class ‏ (If5058)
  • המאפיינים הסמנטיים ContentDescription ו-Text הם כבר לא ערכים יחידים אלא רשימות. כך אפשר למזג אותם כמו שהם במקום לשרשר אותם. בנוסף, סיפקנו ממשקי API משופרים לבדיקה כדי להשתמש בשינויים האלה (Ica6bf,‏ b/184825850)
  • השדה Modifier.focusModifier() הוצא משימוש והוחלף בשדה Modifier.focusTarget() (I6c860)
  • הפונקציות Modifier.onSizeChanged() ו-Modifier.onSizeChanged() כבר לא מוטמעות (I727f6, b/186109675)Modifier.onGloballyPositioned()
  • ה-enum‏ KeyboardType מוחלף במחלקה מוטמעת. (I73045, b/187055290)
  • הוחלף enum‏ FocusState בממשק FocusState (Iccc1a, ‏ b/187055290)
  • ה-enum‏ ImeAction מוחלף במחלקה מוטבעת. (I18be5, ‏ b/187055290)
  • PlaceholderVerticalAlign מומר לסוג מוטבע. (If6290)
  • ‫TextUnitType הוא עכשיו מחלקה מוטבעת. (I4cba9)
  • הפונקציות AnnotatedString.withAnnotation הן עכשיו ExperimentalTextApi במקום ExperimentalComposeApi. (I0cd0a)
    • הבונה של TextUnit עם TextUnitType הוא עכשיו ExperimentalTextApi במקום ExperimentalComposeApi.

תיקוני באגים

  • תוקן הבאג שהוצג בגרסת beta07 שבו פריטים של LazyColumn/Row הוצגו באופן חלקי אחרי הגלילה (I8c9ac, ‏ b/188566058)
  • עכשיו הרכיבים detectDragGesures,‏ detectVerticalGestures ו-detectHorizontalGestures יקבלו את השינוי במיקום באופן אוטומטי, ואין צורך לקרוא ל-change.consumePositionChange בפונקציות הקריאה החוזרת של onDrag ‏ (I42fc4,‏ b/185096350,‏ b/187320697)
  • תוקנה בעיה שקשורה ל-LayoutModifiers שסיפקו קווי יישור. תוקן באג שגרם לכך שהמדידה של הרכיב ההורה לא התבצעה מחדש כשקווי היישור של רכיבי הצאצא השתנו. ‫(I4401f, ‏ b/174315652)
  • Modifier.onGloballyPositioned() השתנה כך שהוא מדווח על הקואורדינטות של המשנה הזה בשרשרת המשנים, ולא על קואורדינטות הפריסה אחרי החלת כל המשנים. המשמעות היא שעכשיו סדר המאפיינים משפיע על הקואורדינטות שידווחו. (Ieb67d, ‏ b/177926591)

גרסה ‎1.0.0-beta07

‫18 במאי 2021

androidx.compose.ui:ui-*:1.0.0-beta07 מופץ. גרסה ‎1.0.0-beta07 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו ממשק ViewRootForInspector לשימוש בכלי לבדיקת מודעות (Ib70df)
  • SubcomposeLayoutState תומך עכשיו בהגדרת מספר המשבצות שאפשר לעשות בהן שימוש חוזר. הפריסה תשמור על עד מספר המשבצות הזה פעילות במקום להשליך אותן, כדי שאפשר יהיה להשתמש בהן מחדש בפעם הבאה שנצטרך משבצת חדשה (Ieb981)
  • ה-enum‏ KeyEventType מוחלף במחלקה מוטבעת. (Id670a, ‏ b/187055290)
  • הסוג FocusDirection enum מוחלף במחלקה מוטבעת. (Ib6d03, ‏ b/187055290, ‏ b/184086802)
  • הוספנו אפשרות להעביר את מצב SubcomposeLayout, שמאפשרת להכין מראש את התוכן ל-slotId נדרש. כך, המעבר הבא למדידה יהיה מהיר יותר, כי כשננסה להשתמש ב-slotId שצוין בפעם הבאה לא יהיה צורך בהרכבה. ‫(I42580, ‏ b/184940225)
  • נוספה ידית לבחירת קליפים (Iff80d, ‏ b/183408447)
  • הוסרו ממשקי API שלא נמצאים בשימוש שקשורים לתמיכה ב-LayoutInspector. (I2ac78)

תיקוני באגים

  • הקומפוננטות LazyColumn/Row ישמרו עכשיו עד 2 פריטים שהיו גלויים בעבר כפעילים (לא יוסרו), גם אם הם כבר לא גלויים בגלל גלילה. כך הרכיב יכול לעשות שימוש חוזר בתתי-הקומפוזיציות הפעילות כשצריך ליצור פריט חדש, וכך לשפר את ביצועי הגלילה. (Ie5555)
  • TextGeomerticTransform ו-TextDecoration ב-AnnotatedString יוחלו כמו שהם. (I61900, ‏ b/184760917)

גרסה ‎1.0.0-beta06

‫5 במאי 2021

androidx.compose.ui:ui-*:1.0.0-beta06 מופץ. גרסה ‎1.0.0-beta06 מכילה את השמירות האלה.

שינויים ב-API

  • פתרון התנגשות עם תנועת ניווט (I1145e)
  • @ComposeCompilerApi כבר לא @RequiresOptIn (Iab690)
  • נוספו ממשקי API של נגישות CollectionInfo ו-CollectionItemInfo שמאפשרים לסמן אוסף ופריטים בו לשירותי נגישות (Id54ef, ‏ b/180479017)
  • נוספה האפשרות SemanticsActions.ScrollToIndex לגלילה ברשימה עם פריטים ממוספרים לפריט עם מספר מסוים, ונוספה האפשרות SemanticsProperties.IndexForKey לקבלת המספר של פריט ברשימה עם פריטים ממוספרים. שתי הפעולות מיושמות על ידי LazyList.
    • נוספו הפונקציות SemanticsNodeInteraction.performScrollToIndex שגוללת רשימה לאינדקס שצוין, ו-SemanticsNodeInteraction.performScrollToKey שגוללת רשימה לפריט עם המפתח שצוין. (I4fe63, ‏ b/178483889, ‏ b/161584524)
  • נוסף ownerViewId ל-GraphicLayerInfo (I19f62)
  • נוספו עומסים יתרים של Font() כדי לטעון גופנים מנכסים, מקובץ ומ-FileDescriptor (I5d382)
  • נוסף API לנגישות error שמאפשר לסמן צומת שמכיל קלט לא תקין (I12997, ‏ b/180584804, ‏ b/182142737)
  • נוספו Font() עומסים כדי לטעון גופנים מנכסים, מקובץ ומ-FileDescriptor (I43007)
  • תמיכה בשמירה של AnnotatedString ב-TextFieldValue.Saver. נוספו פונקציות השירות addTtsAnnotation ו-withAnnotation אל AnnotatedString.Builder (I8cbdc, ‏ b/178446304)
  • נוספה פונקציית בנאי 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)
  • השימוש ב-ViewBinding ב-Compose תלוי עכשיו ב-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 חדש של LocalSoftwareKeyboardController composition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. ‫(I5951e, ‏ b/168778053)
  • נוסף ממשק API חדש של LocalSoftwareKeyboardController composition 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 חדש של LocalSoftwareKeyboardController composition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I658b6, b/168778053)
  • תוקנה שגיאת NoSuchElementException נדירה ב-ComposeRootRegistry's tearDownRegistry() (Iddce1)

גרסה ‎1.0.0-beta01

24 בפברואר 2021

androidx.compose.ui:ui-*:1.0.0-beta01 מופץ. גרסה ‎1.0.0-beta01 מכילה את השמירות האלה.

זו הגרסה הראשונה של Compose 1.0.0 Beta.

שינויים ב-API

  • נוספה קראה חוזרת (callback) מסוג onStart אל detectDragGestures (I67269, ‏ b/179995594)
  • המשנים של גודל המאפיינים המובנים כבר לא ניסיוניים. (I15744)
  • השם של MeasureBlocks שונה ל-MeasurePolicy, והוא הפך לממשק מהנה. ממשקי Layout API עודכנו או פושטו כדי להשתמש ב-MeasurePolicy. (Icab48, ‏ b/167662468, ‏ b/156751158)
  • השדה InteractionState הוחלף בשדה [Mutable]InteractionSource
    • ממשקי המשתמש אחראים לפליטה ולאיסוף של אירועי אינטראקציה.
    • במקום להעביר את interactionState = remember { InteractionState() } לרכיבים כמו Button ו-Modifier.clickable(), צריך להשתמש ב-interactionSource = remember { MutableInteractionSource() }.
    • במקום: Interaction.Pressed in interactionState צריך להשתמש בפונקציות ההרחבה ב-InteractionSource, כמו InteractionSource.collectIsPressedAsState().
    • בתרחישי שימוש מורכבים, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם האינטראקציות. מידע נוסף זמין במסמכי התיעוד ובדוגמאות של InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • הוספת הממשק AccessibilityMananger ו-LocalAccessibilityMananger ב-CompositionLocals (I53520)
  • הוסרו שיטות LayoutCoordinates שהוצאו משימוש. במקום המאפיין משתמשים בפונקציה למיקום בפריט האב ולגבולות בפריט האב (I580ed,‏ b/169874631,‏ b/175142755)
  • השמות החלופיים הוחלפו בסוגים הבסיסיים:
    • ColorStop נקרא עכשיו Pair<Float, Color>
    • SpanStyleRange הוא עכשיו ‎ `AnnotatedString.Range
    • ParagraphStyleRange נקרא עכשיו AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation נקרא עכשיו AnnotatedString.Range<String>
    • (I8dd1a)
  • נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. ‫(I8817f, ‏ b/177662148)
  • הקומפוננטה Placeable חושפת עכשיו את המאפיין measuredSize, שמייצג את הגודל שהפריסה של רכיב הצאצא מדדה בפועל. יכול להיות שהגודל הזה לא עומד במגבלות המדידה. (Ib2729, ‏ b/172560206, ‏ b/172338608)
  • הוספת משנה selectionGroup שמאפשר לסמן אוסף של רכיבי Tabs או RadioButtons למטרות נגישות (Ie5c29)
  • השדה defaultFactory עבור compositionLocalOf ועבור staticCompositionLocalOf הוא עכשיו חובה במקום אופציונלי.

    השינוי הזה מסיר שגיאת סוג פוטנציאלית עבור סוגים שאי אפשר להגדיר כ-nullable, שלא סופקה להם ברירת מחדל של היצרן. בעבר, הפעולה הזו הייתה מספקת הפניה לערך null עבור סוג שלא יכול להיות null.

    לסוגים שניתן להגדיר להם ערך null, כדאי לספק את { null } כברירת המחדל של factory.

    אנחנו לא ממליצים להשתמש ב-locals עם סוגים שלא ניתן להגדיר להם ערך null, אלא אם אפשר לספק ערך ברירת מחדל הגיוני. אם אין ברירת מחדל הגיונית, פונקציית ה-lambda‏ defaultFactory צריכה להחזיר חריגה. עם זאת, אם מתרחשת חריגה, הצרכנים של הלוקאל יסתמכו באופן מרומז על כך שהלוקאל יסופק, אבל מערכת הטיפוס לא תאכוף את זה. (Ifbd2a)

  • הוסרו שיטות שהוצאו משימוש ממודולים של ממשק משתמש (I646f6)

  • השם של מגבילי המידות השתנה. השמות של modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של Modifier.preferredWidth/preferredHeight/preferredSize שונו ל-width/height/size. (I5b414)

  • Modifier.tapGestureFilter הוסר. במקומה צריך להשתמש במדיניות Modifier.pointerInput { detectTapGestures(...) }. (I266ed, ‏ b/175294473)

  • הסרה של צריכה חלקית ממערכת קלט ההצבעה. הדרך המומלצת לתאם צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)

  • ההדרכה הועברה לחבילת Foundation. הכיתה VelocityTracker הועברה מ-ui.gesture אל ui.input.pointer. ‫(Iff4a8, b/175294473)

  • ‫imageResource ו-vectorResource הן עכשיו פונקציות הרחבה ב-ImageBitmap וב-ImageVector בהתאמה. load{Image,Vector,Font}Resource פונקציות נמחקו. (I89130)

  • הוסרו AnimationClockObservable ומחלקות משנה. התכונה AnimatedFloat הוסרה. (Icde52, b/177457083)

  • השם של Providers השתנה ל-CompositionLocalProvider

    • הקונסטרוקטור Composition לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
    • הפונקציה currentCompositeKeyHash הפכה לנכס ברמה העליונה שאפשר להגדיר, במקום פונקציה ברמה העליונה שאפשר להגדיר.
    • המחלקות CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
    • הפכנו את ComposableLambda לממשק במקום למחלקה קונקרטית, והוא כבר לא כולל פרמטרים של סוג.
    • ה-ComposableLambdaN הפך לממשק במקום למחלקה קונקרטית, והוא כבר לא כולל פרמטרים של סוג.
    • הפונקציה snapshotFlow הועברה למרחב השמות androidx.compose.runtime
    • שיטת המיזוג של SnapshotMutationPolicy כבר לא ניסיונית
    • הפונקציה clearRoots ברמה העליונה @TestOnly הוסרה. היא כבר לא נחוצה.
    • הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. הם כבר לא נחוצים.
    • הפונקציה Composer.collectKeySourceInformation הוסרה. היא כבר לא נחוצה.
    • הוסרו ה-methods isJoinedKey,‏ joinedKeyLeft ו-joinedKeyRight. הם כבר לא נחוצים.
    • ממשקי API שונים ברמה העליונה הועברו ואורגנו מחדש בקבצים שונים. בגלל הסמנטיקה של מחלקת הקבצים ב-Kotlin, הפעולה הזו תשבור את התאימות הבינארית אבל לא את תאימות המקור, ולכן היא לא אמורה להיות בעיה עבור רוב המשתמשים.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent() הוסר מ-compose:ui. משתמשים בזה מ-androidx.activity:activity-compose:1.3.0-alpha01. הוסרו viewModel() ו-LocalViewModelStoreOwner מ-compose:ui. שימוש באלה מ-androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b)

  • בוצע שינוי ב-Modifier.scrollable. עכשיו נעשה שימוש בממשק Scrollable במקום במחלקה ScrollableController (מספרים I4f5a5, b/174485541, b/175294473)

  • הוסרה התמיכה ב-CustomEvents מ-PointerInputModifier ‏ (I02707, ‏ b/175294473)

  • ‫SnapshotStateObserver כבר לא ניסיוני (Id2e6a)

  • נמחקו כמה ממשקי API שהוצאו משימוש בעבר (Ice5da, ‏ b/178633932)

  • המסננים longPressGestureFilter ו-doubleClickGestureFilter הוסרו. אפשר להשתמש ב-Modifier.pointerInput עם פונקציות עזר, למשל detectTapGestures ‏ (I2fedf,‏ b/175294473)

  • הוסר String.format API בוצע רפקטורינג של השימושים השונים בשיטות 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)

  • נוספה פונקציית עזר שיכולה לעזור להגדיר את אותה פעולה לכל קריאות החזרה (callback) של 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 כדי להחליף את הממשק הקודם של 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, שינוי התווית של הפעולה ב-AccessibilityAction וב-CustomAccessibilityAction מ-CharSequence ל-String ‏ (I0dc82)
  • כדי להתאים טוב יותר את מוסכמות מתן השמות ל-ImageBitmap ול-ImageVector, השם של ImagePainter שונה ל-BitmapPainter כדי ליצור הקבלה ל-VectorPainter. ‫(Iba381, ‏ b/174565889)
  • שיפורים בממשקי ה-API לבדיקת מחרוזות משנה, כשמחרוזת המשנה מוגדרת כעת כארגומנט (Icbe78)
  • הוספנו Modifier.focusOrder() שמקבל FocusRequester בלי לציין סדר התמקדות מותאם אישית של lambda. השימוש הזה שימושי אם רוצים לציין רק הפניה ולא סדר מיקוד מותאם אישית לרכיב שאפשר להרכיב (I4f52a, ‏ b/179180978)
  • הפונקציה ComponentActivity.setContent הועברה אל androidx.activity.compose.setContent במודול androidx.activity:activity-compose. (Icf416)
  • הוסרו ה-methods של פירוק והעתקה (copy()) מכמה מחלקות שבהן השימוש בהן היה נדיר. (I26702, b/178659281)
  • העברנו את החלון הקופץ כדי שיהיה ספציפי לפלטפורמה. השם של AndroidPopupProperties שונה ל-PopupProperties, והערך isFocusable הועבר לפרמטר focusable ב-PopupProperties (Ieeea5)
  • העברנו את תיבת הדו-שיח כדי שתהיה ספציפית לפלטפורמה. השם AndroidDialogProperties שונה ל-DialogProperties. (I4ef69, b/179138130)
  • הפכנו את LayoutNode ל-internal‏ (I8a7b1, ‏ b/175103944)
  • השדה Constraints.enforce הוחלף בשדה Constraints.constrain. (I8b8ea)
  • הפונקציה loadFontResource הוצאה משימוש. צריך להשתמש ב-fontResource במקום זאת. הפונקציות imageResource,‏ loadImageResource,‏ vectorResource ו-loadVectorResource הוצאו משימוש. במקומו, צריך להשתמש ב-painterResource. (I6b809)
  • מסיבות שקשורות לביצועים, הסמנטיקה של ScrollAxisRange מקבלת עכשיו ביטויי למדה שמחזירים ערכי Float במקום ערכי Float ישירים. (If4a35, b/178657186)
  • נוספה סמנטיקה של EditableText כדי לסמן טקסט קלט שניתן לעריכה בשדה הטקסט לצורך נגישות, ונוספו שיטות בדיקה תואמות כדי לבדוק את הסמנטיקה (I8e07a)
  • הפכנו את OwnerLayer/OwnerScope/OwnerSnapshotObserver ל-internal (I4ffaf, ‏ b/175103944)
  • הפונקציה toIntPx()‎ שונה ל-roundToPx()‎. (I9b7e4, ‏ b/173502290)
  • השם IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
  • ‫Snapshot API עודכן כדי להיות עקבי יותר עם הנחיות ה-API, וגם כדי להסתיר מחלקות הטמעה פנימיות מ-API ציבורי. (Id9e32)
  • נוספו פעולות סמנטיות של הרחבה וכיווץ. נוספו expand ו-halfExpand ב-ModalBottomSheetState ‏ (Ib5064)
  • המאפיין Modifier.dragGestureFilter יצא משימוש. במקומה, צריך להשתמש ב-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. אם בעבר העברתם אובייקט מותאם אישית של saver, עכשיו אתם צריכים להשתמש בעומס יתר חדש של rememberSaveable עם פרמטר stateSaver. השימוש ייראה כך: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • נוספה סמנטיקה של סיסמאות לנגישות (I231ce)
  • נוסף ProgressBarRangeInfo.Indeterminate כדי לסמן סרגלי התקדמות לא מוגדרים לצורך נגישות (I6fe05)
  • הוצאנו משימוש את כלי השירות emptyContent() ו-(@Composable () -> Unit).orEmpty() כי הם כבר לא משפיעים לטובה על הביצועים או על הערך (I0484d)
  • snapshotFlow ו-withMutableSnapshot כבר לא ניסיוניים (I6a45f)
  • עכשיו אפשר לסגור את כלי ההלחנה מחדש. רה-קומפוזיציה של רכיבים סגורים תמשיך עד ששגרות המשנה של הקומפוזיציה יושלמו. השם של הפונקציה Recomposer.shutDown שונה ל-cancel כדי ליצור ניגוד לפונקציה close. (Ib6d76)
  • השם של UiSavedStateRegistry שונה ל-SaveableStateRegistry, השם של AmbientUiSavedStateRegistry שונה ל-AmbientSaveableStateRegistry ושניהם הועברו לחבילה androidx.compose.runtime.saveable. (I30224)
  • הארטיפקט androidx:compose:runtime:runtime-saved-instance-state שונה ל-androidx:compose:runtime:runtime-saveable (I6dcac)
  • הרבה ממשקי API שהוצאו משימוש לפני זמן רב בחבילת ui נמחקו. (I2f2dc)
  • הארטיפקט compose:runtime-dispatch הוצא משימוש. המחלקות MonotonicFrameClock נמצאת עכשיו ב-compose:runtime והמחלקות AndroidUiDispatcher נמצאת ב-compose:ui. (Ib5c36)
  • מחלקות Outline.* הן כבר לא מחלקות נתונים (I4879e, ‏ b/178001427)
  • הסרת את view.captureToImage() בלי להחליף אותו. (I7fcd2)
  • הוספנו את ColorMatrix API שמשמש לשינוי ערכי ה-RGB של תוכן המקור. שינינו את המבנה של ColorFilter API כך שיהיה ממשק ויתאים להטמעה של PathEffect. (Ica1e8)
  • הוספת הפרמטר layoutDirection לפונקציה createOutline של Shape. כך אפשר ליצור צורות שמודעות לכיוון הפריסה. (I57c20, ‏ b/152756983)
  • השימוש ב-onImeActionPerformed יצא משימוש. צריך להשתמש במקום זאת ב-KeyboardActions (If0bbd, ‏ b/179071523)
  • נוסף רכיב של הקשר לקורוטינה InfiniteAnimationPolicy שיופעל באנימציות אינסופיות. כברירת מחדל, לא מותקנת מדיניות, אלא אם מריצים בדיקות עם ComposeTestRule. (I50ec4, b/151940543)
  • המאפיין canDrag הוסר מהמאפיין Modifier.scrollable. (Id66e7, ‏ b/175294473)
  • שם המאפיין LayoutCoordinates.parentCoordinates שונה ל-LayoutCoordinates.parentLayoutCoordinates כדי לאפשר שימוש במאפיין parentCoordinates חדש. המאפיין parentCoordinates כולל עכשיו את LayoutCoordintes של משנה ההורה. כך יהיה אפשר להשתמש בתרחישי שימוש מלאים יותר בפונקציות onSizeChanged()‎ ו-onGloballyPositioned()‎ (Idfbfd, ‏ b/177926591)
  • המסננים tapGestureFilter, ‏ doubleTapGestureFilter, ‏ longPressGestureFilter ו-pressIndicaitonGestureFilter הוצאו משימוש. במקום זאת, אפשר להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה detectTapGestures. (I6baf9, ‏ b/175294473)
  • הוסרה הפונקציה unregisterProvider של SaveableStateRegistry. במקום זאת, registerProvider()‎ מחזירה עכשיו אובייקט SaveableStateRegistry.Entry שבו אפשר להשתמש כדי לבטל את הרישום (Ic4274,‏ b/178583739)
  • השם של rememberSavedInstanceState() שונה ל-rememberSaveable() והוא הועבר לחבילה androidx.compose.runtime.saveable. ‫(I1366e, ‏ b/177338004)
  • הוסרו CoreText ו-CoreTextField מממשק ה-API הציבורי
    • הוסר עומס יתר של SelectionContainer שהוצא משימוש
    • (I99c19)
  • בדיקות שבהן נעשה שימוש ב-Compose בהיררכיות שנוספות או מוסרות ישירות ל-WindowManager יציבות יותר עכשיו. (Ie81ed, ‏ b/175765614)
  • הוסר Recomposer.current(). [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. הרה-קומפוזיציה והאנימציה מבוססת-withFrameNanos מושהות בזמן שמחזור החיים של המארח מושהה. (I38e11)
  • ‫Recomposer.runningRecomposers כולל עכשיו StateFlow גלובלי של RecomposerInfo לקריאה בלבד, כדי לעקוב אחרי מצב הקומפוזיציה בתהליך. עדיף להשתמש בממשק ה-API הזה במקום ב-Recomposer.current(), שהוצא משימוש. (If8ebe)
  • הפונקציות Saver,‏ listSaver(),‏ mapSaver() ו-autoSaver הועברו מ-androidx.compose.runtime.savedinstancestate אל androidx.compose.runtime.saveable (I77fe6)
  • ‫EditCommands מקבל AnnotatedString. עם זאת, זהו שינוי שמתבצע רק ב-API, ועדיין לא הוטמעה האפשרות לעריכת טקסט עם כמה סגנונות. (I4c3ea)
  • הסרנו את הנתונים 'זמן פעולה' ו'משך'. (Ib9bf4, ‏ b/177420019)
  • הפונקציות CompositionData.asTree()‎ וממשקי API קשורים הועברו למודול ui-tooling-data נפרד וסומנו כניסיוניים (Ic95b8)
  • הפרמטרים ב-RounderCornerShape, ‏ CutCornerShape ו-CornerBasedShape קיבלו שמות חדשים: במקום left/right (ימין/שמאל) הם נקראים start/end (התחלה/סיום). זאת כדי לתמוך בשיקוף האוטומטי של הצורה בכיוון מימין לשמאל. הוספנו את הצורות AbsoluteRounderCornerShape ו-AbsoluteCutCornerShape למקרים שבהם לא רוצים שיקוף אוטומטי. (I61040, b/152756983)
  • ה-API שאליו מכוון פלאגין הקומפיילר של Compose עבר רפקטורינג כדי להשתמש בממשק במקום במחלקה קונקרטית. בנוסף, הממשק לא משתמש יותר בפרמטר מסוג.

    זהו שינוי פנימי שלא אמור להשפיע על התאימות של קוד המקור, אבל הוא שינוי בינארי שעלול לגרום לשגיאות. (I3b922, b/169406779)

  • הסרה של הפונקציה StringBuilder.deleteAt שהוגדרה בטעות כציבורית (Id6ed9)

תיקוני באגים

  • תצוגות ComposeViews שמוצבות בהיררכיות של תצוגות שהן צאצאים של קומפוזיציה אחרת, מארחות עכשיו קומפוזיציות צאצא של האבות הקדמונים שלהן (I92883)
  • בוצע עדכון ב-API של compose's 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 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. נוספה שיטת factory‏ createEmptyComposeRule() שמחזירה ComposeTestRule ולא מפעילה Activity בשבילכם. משתמשים בזה כשרוצים להפעיל את הפעילות במהלך הבדיקה, למשל באמצעות ActivityScenario.launch (I9d782, ‏ b/174472899)

  • הפונקציה animateAsState נקראת עכשיו animateFooAsState, כאשר Foo הוא סוג המשתנה שמונפש. למשל: Float,‏ Dp,‏ Offset וכו' (Ie7e25)

  • נוסף פרמטר של תיאור תוכן לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)

  • צריך להסיר את displaySize כי לא מומלץ להשתמש בו. בדרך כלל עדיף להשתמש בגודל של onRoot() או בגודל החלון לפחות. (I62db4)

  • הפונקציה OnSizeChanged דיווחה על הגודל של התוכן בפריסה. הוא מדווח עכשיו על הגודל במיקום שלו בשרשרת של שינוי המאפיינים. (I36b78, ‏ b/177562900)

  • הוצאנו משימוש את ה-API‏ emit() ואת כל העומסים העודפים שלו, ושינינו את השם שלו ל-ComposeNode. ממשקי ה-API זהים, רק השם שונה כדי להתאים למוסכמות מתן השמות של Compose (I4137b)

  • השדה TextFieldValue מקבל AnnotatedString. עם זאת, זהו שינוי שמתבצע רק ב-API, ועדיין לא הוטמעה האפשרות לערוך טקסט עם כמה סגנונות.

    • הוסר initial מפרמטרים של בנאי EditingBuffer. (I326d5)
  • הפונקציות invalidate ו-compositionReference() הוצאו משימוש, ועכשיו משתמשים במקומן בפונקציות currentRecomposeScope ו-rememberCompositionReference בהתאמה. (I583a8)

  • המחרוזת AnnotatedString השתנתה כך שהיא נגזרת מ-kotlin.CharSequence. לכן, הפונקציות length ו-subSequence הן עכשיו פונקציות של מופע, והפונקציות של התוסף הוסרו. (Iaf429)

  • הפונקציה RememberObserver מחליפה את CompositionLifecycleObserver, והפונקציה CompositionLifecycleObserver הוצאה משימוש.

    RememberObserver הוא תחליף ל-CompositionLifecycleObserver עם סמנטיקה ששונתה ושיטות ששמן שונה. אפשר לעבור ל-API החדש באופן אוטומטי לאובייקטים שזוכרים רק פעם אחת, וזו גם ההמלצה שלנו. עם זאת, אם הפניה נשמרה יותר מפעם אחת ברכיב, הפונקציה onRemembered נקראת עבור כל הפניה, ואילו הפונקציה onEnter נקראת רק פעם אחת. הייתה קריאה לפונקציה onEnter כמה פעמים אם האובייקט היה בשימוש בקומפוזיציות משנה, כמו WithConstraints ו-Scaffold, ולכן אי אפשר היה להסתמך על קריאה יחידה לפונקציה onEnter. לכן, הפונקציה הוסרה ב-RememberObserver.

    RememberObserver מוסיף את onAbandoned, שמופעל אם מופע RememberObserver מוחזר מהקריאה החוזרת שהועברה אל remember אבל לא נשמר במצב הקומפוזיציה, ולכן אף פעם לא תתבצע קריאה אל onRemembered. זה יכול לקרות אם חריגה מסיימת את ההרכבה לפני שהיא מסתיימת, או אם ההרכבה נפסלת כי המצב שהיא יצרה עבורו הרכבה כבר לא עדכני או כבר לא נחוץ. אם המופע של RememberObserver שמופיע אחרי ההמלצה שלמעלה לגבי הפניה היחידה עוקב אחרי משאב חיצוני, גם onForgotten וגם onAbandoned מציינים שהמשאב כבר לא נחוץ. אם האובייקט עוקב אחרי עבודה שהתחילה או משאבים שהוקצו ב-onRemembered, אפשר להתעלם מ-onAbandoned כי הוא לא יופעל אם onRemembered יופעל. (I02c36)

  • הוצאו משימוש פעולות אריתמטיות בין 2 או יותר TextUnit. הפונקציות TextUnit.Sp ו-TextUnit.Em הוצאו משימוש, ועדיף להשתמש בפונקציות ההרחבה כמו Int.sp ו-Int.em. (I48369)

  • משאבים בספריות ללא משאבים ציבוריים שהוגדרו במפורש (למשל, דרך public.xml) הם עכשיו פרטיים כברירת מחדל. (Ia1dcc, b/170882230)

  • התכונות ScrollableColumn ו-ScrollableRow הוצאו משימוש. השימוש ב-ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn כשמציגים תוכן ארוך שניתן לגלול בו, כי באמצעות LazyColumn אפשר להלחין, למדוד ולצייר רק את הרכיבים הגלויים. כדי למנוע מהמשתמשים להשתמש בדרך הלא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו-ScrollableRow ולעודד שימוש ב-LazyColumn וב-LazyRow במקום זאת. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות של 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.None במקום ב-ImeAction.NoAction

    • במקום ImeAction.Unspecified (Ie1bcc), צריך להשתמש ב-ImeAction.Default
  • שימוש ב-TestCoroutineDispatcher בבדיקות (I532b6)

  • שם הפונקציה TextInputService.onStateUpdated שונה ל-updateState (Id4853)

  • הוצא משימוש מעבר שמבוסס על TransitionDefinition (I0ac57)

  • הערך TextUnitType.Inherit הוסר. במקומו, צריך להשתמש ב-TextUnitType.Unspecified. (I9ff64)

גרסה ‎1.0.0-alpha10

‫13 בינואר 2021

androidx.compose.ui:ui-*:1.0.0-alpha10 מופץ. גרסה ‎1.0.0-alpha10 מכילה את השמירות האלה.

שינוי שעלול לגרום לכשלים

  • שינוי המבנה של ה-API הפנימי של הקומפיילר מאפשר לאגד שינויים בצמתים שנוצרו כתוצאה מקומפוזיציה לשלב 'החלת שינויים' בקומפוזיציה, אחרי שכל הפונקציות @Composable הושלמו.

    זהו שינוי שעלול לשבור את ההתנהגות של קוד האפליקציה, כי הצמתים לא יהיו זמינים יותר מממשקי API פנימיים וניסיוניים עד אחרי שהשינויים יחולו. בדרך כלל אפשר לעקוף את הבעיה הזו על ידי הצבת הקוד עם התלות הזו ב-SideEffect composable כדי לדחות את ההרצה של הקוד עד אחרי שהצמתים נוצרו ואותחלו. (I018da)

שינויים ב-API

  • נוסף Modifier.focusOrder()‎ שאפשר להשתמש בו כדי לציין סדר מעבר מותאם אישית בין רכיבים במצב פוקוס (I90cf5, ‏ b/175899543, ‏ b/170155556, ‏ b/170155429)
  • הוסרה השימוש ב-focusObserver שאינו מומלץ. במקום זאת, צריך להשתמש ב-onFocusChanged או ב-onFocusEvent (I3ecb9, b/175156387)
  • שינויים ב-EditOperations API
    • שינוי השם של EditOperation ל-EditCommand
    • נוספה סיומת Command להטמעות קונקרטיות של EditOperation
    • ‫EditCommand's הם כבר לא מחלקות נתונים
    • השם של הפונקציה EditOperation.process שונה ל-applyTo
    • השם של InputEventListener שונה ל-InputEventCallback
    • (I0a366)
  • הוסרו המאפיינים PxSquared,‏ PxCubed ו-PxInverse שלא בשימוש. הפונקציה Size.center() שונתה למאפיין. (I973f7)
  • מודול ui-test יוכל עכשיו להגדיר את היצירה של רכיבי Recomposer לממשקי משתמש שנבדקים (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)

  • הוספת Toggle ל-foundation Strings.kt ‏ (I4a5b7, ‏ b/172366489)

  • העברנו את nativeClass למודול ui והגדרנו אותו כפנימי. השימוש ב-nativeClass עודכן בהטמעות של equals כדי להשתמש ב-'is MyClass' במקום זאת. (I4f734)

  • הפונקציות Modifier.focus()‎ ו-Modifier.focusRequester()‎ הוצאו משימוש. במקום זאת, צריך להשתמש ב-Modifier.focusModifier()‎ וב-Modifier.focusReference()‎. (I75a48, ‏ b/175160751, ‏ b/175160532, ‏ b/175077829)

  • הוספנו את SelectionRegistrar.notifySelectableChange כדי להודיע ל-SelectionManager על עדכונים של Selectable. (I6ff30, b/173215242)

  • הוספנו את המאפיין Outline.bounds כדי לקבל את המלבן התוחם למימושים שונים של קווי מתאר. ‫(I16e74, ‏ b/175093504)

  • הוצא משימוש TestUiDispatcher. במקום זאת, צריך להשתמש ב-Dispatchers.Main ‏ (Ic171f,‏ b/175385255)

  • ‫ImeOptions ו-KeyboardOptions כבר לא מחלקת נתונים (I3c898, ‏ b/168684531)

  • שינויים ב-VisualTransformation API

    • השם של OffsetMap שונה ל-OffsetMapping
    • השם של OffsetMapping.identityOffsetMap שונה ל-OffsetMapping.Identity
    • הסיווג PasswordTransformation לא מוגדר יותר כסיווג נתונים
    • העברנו את OffsetMapping לקובץ משלו
    • (I0bdf3)
  • שינוי השם של Position ל-DpOffset והסרה של getDistance()‎ (Ib2dfd)

  • הפונקציה fun Dp.isFinite() שונתה ל-val Dp.isFinite (I50e00)

תיקוני באגים

  • ‫Recomposer חושף עכשיו Flow של ערך דינמי הנוכחי שלו, ומאפשר מעקב אחרי ה-Activity שלו וה-Activity של אפקטים משויכים. (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 composables או ב-painter modifiers. (I2c703, ‏ b/173818471)

  • נוסף Modifier.clearAndSetSemantics כדי לנקות את הסמנטיקה של צאצאים ולהגדיר סמנטיקה חדשה. (I277ca)

  • העברנו את ContentDrawScope למודול ui-graphics כדי שיהיה עם DrawScope. (Iee043, ‏ b/173832789)

  • הוספנו את PathEffect graphics API כדי לספק דוגמאות שונות לצורות עם קו מתאר. שימוש ב-NativePathEffect יצא משימוש, ועכשיו צריך להשתמש ב-expect/actual implementation של 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 כתחליף ל-API של ui-tooling, כדי להשתמש בו לחילוץ פרטי קומפוזיציה. ממשקי ה-API האלה הם ציבוריים, אבל הם לא מיועדים לשימוש מחוץ ל-ui-tooling API, כי הם מספקים את המידע הגולמי ש-ui-tooling API מפרש (I31a9c)

  • בוצע רפקטורינג ב-ShaderBrush כדי ליצור באופן עצלני מופע של Shader כשמידע על גודל סביבת הציור זמין. השימוש הזה מועיל להגדרת מעברי צבע שממלאים את כל גבולות הציור של קומפוננטה קומפוזבילית בזמן הקומפוזיציה, בלי שתצטרכו להטמיע הטמעות מותאמות אישית של DrawModifier.

    הוצאנו משימוש ממשקי API של בנאי פונקציות של מעברי צבעים לטובת שימוש בשיטות של אובייקט Gradient. (I511fc, b/173066799)

  • הוצאה משימוש של LazyColumnFor, ‏ LazyRowFor, ‏ LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, צריך להשתמש ב-LazyColumn וב-LazyRow‏ (I5b48c)

  • הוצא משימוש BuildCompat.isAtLeastR ‏ (Idb37e)

  • נוספה פונקציית factory בשם buildAnnotatedString כדי ליצור AnnotatedString. פונקציית ה-builder של annotatedString הוצאה משימוש. (Idfe0b)

  • הוסרו שיטות הרחבה ב-Float וב-Double להמרת ערכים לרדיאנים. הועבר להיות פונקציה פרטית בהטמעה PathParser, שהייתה המקום היחיד שבו נעשה שימוש בפונקציה הזו (I25f52)

גרסה ‎1.0.0-alpha08

2 בדצמבר 2020

androidx.compose.ui:ui-*:1.0.0-alpha08 מופץ. גרסה ‎1.0.0-alpha08 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת פעולה סמנטית לביטול (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)
  • השדות uptime ו-position של PointerInputData לא יכולים להיות null. (Id468a)
  • ‫MaterialTheme מגדיר עכשיו את הצבעים הנכונים של נקודות האחיזה לבחירה ושל הרקע של הבחירה. באפליקציות שאינן Material, אפשר להשתמש ב-AmbientTextSelectionColors באופן ידני כדי להתאים אישית את הצבעים שמשמשים לבחירה. (I1e6f4, ‏ b/139320372, ‏ b/139320907)
  • נוספה הפונקציה WindowManager.isWindowFocused כדי לבדוק אם חלון המארח נמצא במוקד ההתעניינות, ונוסף WindowFocusObserver שמספק קריאה חוזרת (callback) מסוג onWindowFocusChanged. (I53b2a, ‏ b/170932874)
  • עדכון של TransformOrigin API כך שיכלול תחביר של פירוק מבנה כדי להחזיר את pivotFractionX ואת pivotFractionY בתור component1 ו-component2 (If43c4, ‏ b/173586560)
  • נוספה בדיקת לינט לשמות ולמיקום של פרמטרים של lambda שאפשר להרכיב, כדי לבדוק את העקביות עם ההנחיות של Compose. בנוסף, העברנו חלק מממשקי ה-API באמצעות children כשם של פונקציית ה-lambda האחרונה שלהם אל content, בהתאם לבדיקת ה-lint ולהנחיות. (Iec48e)
  • נוסף API לבדיקה אם מקשי הצירוף Alt, ‏ Ctrl, ‏ Meta או Shift נלחצו כשאירוע מקש נשלח. (I50ed9)
  • נוספה שיטת Modifier.drawLayer() חדשה עם עומס יתר. הוא מקבל בלוק lambda ב-GraphicsLayerScope חדש שבו מגדירים את פרמטרי השכבה באופן שמאפשר לדלג על קומפוזיציה מחדש ועל פריסה מחדש כשמתרחש שינוי במצב. הפונקציה DrawLayerModifier היא עכשיו פנימית, כהכנה להעברת הלוגיקה שלה לשיטה placeable.placeWithLayer()‎ של LayoutModifier ‏ (I15e9f,‏ b/173030831)
  • הסביבות המקיפות שיצאו משימוש נקראות עם Ambient כסיומת, והוחלפו במאפיינים חדשים עם הקידומת Ambient, בהתאם להנחיות של סביבות מקיפות אחרות ושל Compose API. (I33440)
  • הועבר אל androidx.compose.ui.text.font.Typeface (Ic2b81)androidx.compose.ui.text.Typeface
  • הארגומנט הסמנטי mergeAllDescendants שונה ל-mergeDescendants. (Ib6250)
  • גלאי חדש של תנועת גרירה שמשעה את ה-API של קלט המצביע, כולל נעילת הכיוון. (Icef25)
  • שם המחלקה VectorAsset שונה ל-ImageVector הועברה ושמה שונה ל-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)‎. במקום זאת, אפשר להשתמש בעומסים עם היסטים של מספרים שלמים (I4c5e7)
  • הוסרו ממשקי API שהוצאו משימוש בעבר: הוסר Modifier.onPositioned, צריך להשתמש ב-Modifier.onGloballyPositioned. הוסרה הפונקציה Modifier.onDraw, צריך להשתמש בפונקציה Modifier.onDrawBehind. הוסר Modifier.plus, צריך להשתמש ב-Modifier.then. הוסר Color.Unset, צריך להשתמש ב-Color.Unspecified. הוסר המחלקה PxBounds, צריך להשתמש במחלקה Rect במקום זאת. (Ie9d02, b/172562222)
  • ממשק ההתאמה עודכן והפך לפונקציונלי. (I46a07, ‏ b/172311734)
  • נוסף גלאי מחוות להקשה, להקשה כפולה, ללחיצה ארוכה ולסימון לחיצה באמצעות קלט חדש של מצביע השהיה. הוספנו גם כמה כלי עזר, כדי להקל על מפתחים לכתוב גלאי מחוות משלהם. (I00807)
  • השם של id שונה לlayoutId עבור LayoutIdParentData. השם של Measurable.id שונה לMeasurable.layoutId. (Iadbcb, ‏ b/172449643)
  • גלאי חדש של תנועות מגע מרובות, כולל כלים לזיהוי סיבוב, שינוי מרחק התצוגה והזזה. (Ic459d)
  • הוספנו את ממשקי ה-API‏ SweepGradientShader ו-SweepGradientBrush. (Ia22c1)
  • השליטה בזמן בבדיקות (TestAnimationClock והשימושים בה) היא עכשיו ניסיונית (I6ef86, b/171378521)
  • הוספת ממשקי API לגלילה מבוססת-קורוטינה:

    נוספו LazyListState.snapToItem ו-LazyListState.smoothScrollBy, וגם ממשקי API ברמה נמוכה יותר לשליטה בגלילה. ממשקי ה-API האלה מספקים ממשק השהיה לשליטה בגלילה שמחכה עד שהגלילה מסתיימת לפני שהיא חוזרת. (Ie5642)

  • הוספנו את Modifier.focusable ל-foundation. המאפיין הזה מאפשר להוסיף התנהגות של רכיב שאפשר להתמקד בו, עם סמנטיקה ונגישות נכונות. (I41eb9, ‏ b/152525426, ‏ b/162865824)

  • הוספת הטמעות ברירת מחדל של מתודות ומאפיינים ב-AnimationClockTestRule שאפשר להעביר ל-clock (I7ea3d, b/173399709)

  • ‫AndroidComposeTestRule יכול לקבל עכשיו מפעילים מותאמים אישית של פעילויות (Ib8288, ‏ b/153623653, ‏ b/154135019)

  • השיטה TextLayoutResult.getLineVisibleEnd הוצאה משימוש. במקום TextLayoutResult.getLineEnd, יש עכשיו פרמטר חדש בשם visibleEnd. (I73282)

  • ‫TextFieldValue API מעודכן

    • made TextFieldValue.composition readonly
    • הוסרה חריגה שמופעלת בטווח בחירה לא תקין (I4a675, b/172239032)
  • תמיכה ב-TtsAnnotation למנוע המרת טקסט לדיבור. (I54cc6)

  • ממשקי API חדשים להפעלת אנימציות בקורוטינות (Ied662)

תיקוני באגים

  • השם של פרמטר היישור של 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)
  • נוסף רכיב wrapper של Typeface ל-Android. אפשר לטעון גופן Android באמצעות הפונקציה typeface, כלומר typeface(Typeface.DEFAULT). השם של typefaceFromFontFamily() שונה לtypeface() (I52ab7)
  • נוספה בדיקת lint כדי לוודא שפונקציות של יצירת Modifier מוגדרות כתוספים ב-Modifier, כדי שאפשר יהיה לשרשר אותן בצורה חלקה. (I07981)
  • הסרת המודול הישן ui-test וה-stubs שלו (I3a7cb)
  • ‫Recomposer לא מקבל יותר EmbeddingContext. יחסי התלות הנדרשים בתזמון מתקבלים מ-effectCoroutineContext. ה-API ‏FrameManager הוצא משימוש. שילובים של פלטפורמות צריכים לאתחל טיפול משלהם בתמונת מצב גלובלית. (I02369)
  • העברת מידע על סגנון לצומת הנגישות. ‫(If5e8d)
  • השם של TextUnit.Inherit שונה ל-TextUnit.Unspecified כדי לשמור על עקביות עם יחידות אחרות. (Ifce19)

גרסה ‎1.0.0-alpha07 של Compose UI

11 בנובמבר 2020

androidx.compose.ui:ui-*:1.0.0-alpha07 מופץ. גרסה ‎1.0.0-alpha07 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו את המחלקה ScaleFactor inline כדי לייצג גורמי קנה מידה לצירים האופקי והאנכי, בלי קשר אחד לשני, כדי לתמוך בתרחישי שימוש של שינוי קנה מידה לא אחיד.
    • נוספה שיטת computeScaleFactor אל ContentScale
    • נוספה הפונקציה ContentScale.FillBounds כדי לבצע שינוי גודל לא אחיד למתיחת הגבולות של src כך שימלאו את היעד.
    • נוספו שיטות אופרטור לחישוב פרמטרים של ScaleFactor עם פרמטרים של Size.
    • ‫(Ic96a6, ‏ b/172291582)
  • נוספו המפעלים BiasAlignment ו-BiasAbsoluteAlignment ליצירת Alignments. (Iac836, ‏ b/169406772)
  • מאפשרים למפתח לנקות את המיקוד בכוח. (I90372)
  • תוקן באג שגרם לכך שההצללה לא הוצגה בתצוגות בתוך חלון הכתיבה. (If7782)
  • נוצר onDrawBehind API בתוך 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 בסיסי לטקסט שלא משתמש בערכים מתוך עיצוב, כדאי לעיין ב-androidx.compose.foundation.BasicText. ‫(If64cb)
  • עדכון של TextFields כדי לקבל KeyboardOptions ‏ (Ida7f3)
  • שינוי השם של KeyboardOptions ל-ImeOptions ‏ (I82f36)
  • העברנו את KeyboardType ו-ImeAction אל KeyboardOptions (I910ce)
  • האפשרות provideDefault נוספה כחלופה לאספקת ערכים סביבתיים, ואפשר להשתמש בה כדי לציין ערכים סביבתיים שיוגדרו רק אם לא סופק כבר ערך סביבתי. (Id6635, b/171024925)
  • ה-BaseTextField הוצא משימוש. במקום זאת, משתמשים ב-BasicTextField. (I896eb)
  • הוספת מודול ui-test-junit4 ‏ (Ib91f8)
  • השם של relativePaddingFrom שונה לpaddingFrom. נוסף משנה paddingFromBaseline כדי להקל על ציון המרחקים מגבולות הפריסה לקווי הבסיס של הטקסט. (I0440a, ‏ b/170633813)
  • השם של LaunchedTask שונה ל-LaunchedEffect כדי לשמור על עקביות עם ממשקי ה-API של SideEffect ו-DisposableEffect. כדי לעודד שימוש בשיטות מומלצות, אסור להשתמש ב-LaunchedEffect ללא פרמטרים של נושא. (Ifd3d4)
  • הוספנו משאבים שניתנים להרכבה מחדש כשמעדכנים את ההגדרה. ‫(I6387c, ‏ b/167352819)
  • מעכשיו, Recomposer דורש CoroutineContext בזמן ההגדרה (Ic4610)
  • סכום הערכים של zIndex כשמחילים כמה ערכים של Modifier.zIndex(). בעבר, הראשון היה מנצח. (Ic514c, ‏ b/170623936)
  • שינויים בהטמעה הפנימית של SlotTable שלא אמורים להשפיע על ה-API הציבורי. (If9828)
  • נוספה אפשרות לתיקון אוטומטי במקלדת IME (I57b8d)
  • ‫androidx.ui.test עבר אל androidx.compose.ui.test ‏ (I9ffdb)
  • הוסר KeyboardOptions.toImeOptions מ-API ציבורי. (Ic2e45)

External Contribution

  • השבתנו את הפרסום של ארטיפקט פנימי androidx.compose.ui:ui-text-android ‏ (Ib93fa)

גרסה ‎1.0.0-alpha06

28 באוקטובר 2020

androidx.compose.ui:ui-*:1.0.0-alpha06 מופץ. גרסה ‎1.0.0-alpha06 מכילה את השמירות האלה.

שינויים ב-API

  • ה-Recomposer הוא עכשיו CompositionReference והורה תקף של composition. השימוש ב-Explicit Recomposer נדרש עכשיו בפחות מקומות. (I4036f)
  • הוצאנו משימוש את VectorPainter לטובת rememberVectorPainter כדי להבהיר טוב יותר ש-API ה-Composable משתמש פנימית ב-remember כדי לשמור נתונים לאורך זמן בין קומפוזיציות. (Ifda43)
  • בוצע עדכון ב-Modifier.drawWithCache API כדי לחשוף את ContentDrawScope כהיקף מקבל במקום DrawScope, כדי לספק יישומים עם היכולת לסדר מחדש פקודות ציור. האפשרות הזו שימושית לתרחישי שימוש של מיזוג או גוון, שבהם פיקסלים של תוכן צריכים לעבור רינדור קודם כדי שהאלגוריתם המתאים של מצב המיזוג יופעל בצורה תקינה. (Ie7ec8)
  • העברת SimpleContainer אל PopupTestUtils.kt (I78c57)
  • ‫ConsumedData כבר לא מסווג כנתונים. פרטים נוספים זמינים בכתובת https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f)
  • תיקון המיקום של נקודת האחיזה לשינוי הסדר בטקסט מימין לשמאל. (I6e1e0)
  • בוצע רפקטורינג של DrawScope ו-ContentDrawScope כך שיהיו ממשקים במקום מחלקות אבסטרקטיות
    • נוצרה הטמעה של CanvasDrawScope של DrawScope
    • בוצע רפקטורינג בהטמעות של DrawScope כדי להשתמש ב-CanvasScope במקום זאת
    • נוצר DrawContext כדי לעטוף תלויות עבור DrawScope
    • הוסרו שיטות שהוצאו משימוש ב-DrawScope (I56f5e)
  • שינוי שובר תאימות: הערך המוחזר הוסר מ-PointerInputFilter.onPointerEvent(...), כי הערך היחיד שאפשר לשנות באירועי הצבעה הוא נתוני הצריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...), עכשיו אפשר פשוט לשנות את נתוני הצריכה של PointerEvents שמועברים. (I6acd0)
  • הפכנו את MeasureScope ו-IntrinsicMeasureScope לממשקים. (I1a087, b/170461665)
  • הסתרנו את פונקציית המיזוג של AlignmentLine. (I9da1a, ‏ b/170612900, ‏ b/170611568)
  • נוספה אפשרות לציין פרטים של הכלי לבדיקת מודעות בשינוי (modifier) מורכב (Idee08, ‏ b/163494569)
  • הוספנו את האפשרות 'בחירת הכול' לתפריט הבחירה (Ief02b)
  • הפונקציה DrawTransform.rotate עודכנה כך שתקבל פרמטר ברירת מחדל של נקודת ציר במרכז, בהתאם לתיעוד.
    • הפונקציה DrawScope.rotateRad עודכנה כך שתצרוך אובייקט Offset לנקודת הציר כדי להתאים לשיטות טרנספורמציה אחרות.
    • הוצא משימוש עומס יתר של DrawScope.rotateRad שצרך ערכי float לקואורדינטות x ו-y של נקודת הציר.
    • (Iffcbb, b/170434992)

תיקוני באגים

  • הבדיקה של API lint ל-MissingGetterMatchingBuilder מופעלת עבור androidx ‏ (I4bbea, ‏ b/138602561)
  • מוסיפים בדיקה. (I6b8ae)
  • מפעילים מעברים ב-ComposeTestRule ומסירים את האפשרות להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
  • נוספה אפשרות IME של KeyboardCapitalization (I8ac38)
  • נוספה אפשרות למקלדת עם שורה אחת ל-CoreTextField (I72e6d)
  • העברת SimpleContainer אל PopupTestUtils.kt (I65c3e)
  • שינינו את השם של Radius API ל-CornerRadius כדי להבהיר טוב יותר את אופן השימוש בו ב-Compose. עדכנו את המסמכים כדי לציין שרדיוסים שליליים של פינות מוצמדים לאפס. (I130c7, b/168762961)
  • שיפור יכולת הפעולה ההדדית עם Android על ידי המשך שליחת MotionEvents ל-Android Views צאצאים שמחזירים false עבור onTouchEvent לכל הפעולות מלבד ACTION_DOWN (I94c5a, ‏ b/170320973)
  • התיבה הפכה לפונקציה מוטמעת. (Ibce0c, ‏ b/155056091)

External Contribution

  • תמיכה בלוקאלים שונים עבור AnnotatedString.capitalize ו-AnnotatedString.decapitalize (I4aa7f)

גרסה ‎1.0.0-alpha05

‫14 באוקטובר 2020

androidx.compose.ui:ui-*:1.0.0-alpha05 מופץ. גרסה ‎1.0.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת DSL להגדרת פרטי הבודק (Ic9a22)
  • מעבירים את LongPress אל Text. (Iff2bc)
  • שינוי ניסיוני.השהיית קלט של שינוי pointerInput (Ia77d2)
  • הוספנו פעולות נגישות להעתקה, להדבקה ולגזירה (I6db4f)
  • הוסר constructor ציבורי ל-AndroidOwner ‏ (Iacaef)
  • חלונות קופצים ותיבות דו-שיח יורשים עכשיו את FLAG_SECURE מהחלון הראשי. נוספה גם אפשרות להגדיר את זה באופן מפורש (I64966, ‏ b/143778148, ‏ b/143778149)
  • נתוני הצריכה ניתנים עכשיו לשינוי. בנוסף, קריאות לפונקציות של תוספים שצורכות נתונים כבר לא מחזירות PointerInputChange חדש, אלא משנות את ה-PointerInputChange שסופק.

    זה השלב הראשון בתהליך של שני שלבים שמטרתו לאפשר שינוי של נתונים מסוג PointerEvent, כך שקוד משתמש לא יוכל לערוך נתונים אחרים של מצביע. בשלב השני, נסיר את סוג ההחזרה List<PointerInputChange> מ-PointerInputFilter.onPointerEvent(...). (Id067e)

  • השבתה של בחירה בטקסט, והדגמה. (Ie7e97)

  • הפונקציה onGloballyPositioned הפכה לפונקציה מוטמעת (I15830)

  • השם של OnPositionedModifier שונה ל-OnGloballyPositionedModifier והשם של onPositioned()‎ שונה ל-onGloballyPositioned()‎. ‏(I587e8, ‏ b/169083903)

  • המאפיין hasPendingMeasureOrLayout נוסף לאובייקט Owner, כדי לציין אם יש לאובייקט Owner עבודת פריסה בהמתנה. (I3d9f8, b/169038599)

  • נוסף API לביטול המיקוד באופן פרוגרמטי (Ie1dc2, ‏ b/161487952)

  • בוצעה הסרה של PointerInputFilter.onPointerInput(...). במקומה צריך להשתמש ב-PointerInputFilter.onPointerEvent(...). (I6f04a)

  • שינויים בגודל

    • הוסרה הפונקציה Size.getFlipped
    • הוסר Size.rem
    • הוסרה הפונקציה Size.truncDiv ‏ (Ief44d, ‏ b/169790720)
  • במסגרת התקינה של ערכי Sentinel עבור מחלקות מוטבעות, שם הערך Color.Unset שונה ל-Color.Unspecified כדי לשמור על עקביות עם מחלקות מוטבעות אחרות (I97611, b/169797763)

  • הוצג TextOverflow.None. כשהערך של overflow הוא None, הרכיב Text לא יטפל יותר בגלישה, וידווח על הגודל בפועל שלו ל-LayoutNode. (I175c9, b/158830170)

  • הפרמטר scope ב-AnnotatedString.Builder.addStringAnnotation נקרא עכשיו tag, כדי לשמור על עקביות עם ה-API. (I7c8cb)

תיקוני באגים

  • הביצועים של הגלילה ב-LazyColumn/Row משופרים כי מתבצעת פחות עבודה בהרכב המשנה בכל גלילה. הוספנו את השיטה החדשה hasInvalidations()‎ למחלקה Composition. השיטה hasPendingChanges()‎ מ-Recomposer שונתה ל-hasInvalidations()‎ (Ib2f32, ‏ b/168293643, ‏ b/167972292, ‏ b/165028371).
  • הפרמטרים של Size.Unspecified עודכנו ל-Float.NaN במקום ל-Float.POSITIVE_INFINITY. עדכנו את ההטמעות של Painter כדי לבדוק גם את Size.Unspecified וגם את הגדלים הלא סופיים. (I95a7e)
  • הסדר של קריאות place() בפריסות מותאמות אישית מגדיר עכשיו את סדר הציור של הצאצאים (Ibc9f6)
  • תמיכה בהמרה של AnnotatedString ל-SpannableString לצורך נגישות. (Ief907)
  • נוספו stubs למחלקות של Android בפלטפורמות ישנות יותר כדי להימנע משימוש ברפלקציה כשזה אפשרי. (Ia1790)
  • באג שתוקן: אם המקלדת הווירטואלית שמוצגת גרמה לאפליקציה לתרגם, קואורדינטות הקלט של מצביע העכבר היו שגויות. (Ic4cec, b/163077821)

גרסה ‎1.0.0-alpha04

‫1 באוקטובר 2020

androidx.compose.ui:ui-*:1.0.0-alpha04 מופץ. גרסה ‎1.0.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

  • נוסף OwnerScope כדי לאפשר איסוף של היקפי תצפית על פריסות וציורים אחרי שהם כבר לא תקפים. (Ic4cf8)
  • נוספו OnRemeasuredModifier ו-onSizeChanged() כדי לקבל קריאה חוזרת (callback) כשפריסת התוכן נמדדה מחדש והגודל השתנה, בהתאמה. (I657cf, b/154108792)
  • הוספת פעולה של לחיצה ארוכה (I6281b, b/156468846)
  • הגדרנו את FocusManager כפרטי. (I7872f)
  • העדכנו את ההטמעה כדי ליצור הטמעה ייעודית של DrawCacheModifier במקום להוסיף מאפיינים אופציונליים ב-DrawModifier.

    עדכון המסמכים של שיטות שונות (Ibd166)

  • כדי למנוע יצירת אובייקט, צריך להגדיר את TextRange כ-inline. (Id034b)

  • אי אפשר יותר לקרוא את הערכים PlacementScope#parentWidth ו-PlacementScope#parentLayoutDirection מבלוק המיקום של פריסה בהתאמה אישית. (Icc1ae, ‏ b/168295623)

  • מוסיפים את AccessibilityScrollState למאפייני הסמנטיקה. (Ifeda9)

  • נוסף Modifier.drawWithCache כדי לתמוך ביצירת אובייקט ציור שיוצר מחדש באופן מותנה תלויות שתלויות במידע על גודל או מצב (I376dc).

  • המאפיין ParagraphConstraints הוסר. הרוחב מועבר עכשיו ישירות לפסקה. (Ica712)

תיקוני באגים

  • עודכנו הרבה ממשקי API של גרפיקה
    • ממשקי ה-API של שינוי הגודל והסיבוב עודכנו כך שישתמשו בפרמטר Offset יחיד כדי לייצג את קואורדינטת נקודת המשען, במקום בפרמטרים נפרדים של מספרים עשרוניים לקואורדינטות x/y ב-DrawScope וב-DrawTransform
    • הוסרו השיטות Rect.expandToInclude ו-Rect.join
    • עדכנו את התיעוד של Radius כדי לציין אליפסה בנוסף לאליפסה
    • הוספנו תיעוד שמציין שאסור לקרוא ישירות לבונה הציבורי של מחלקת 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 למאפיין במקום לפונקציה
    • העדכון של ה-constructor של RoundRect מאפשר להשתמש במאפייני Radius במקום בפרמטרים נפרדים של ערכי הרדיוס x/y
    • הוסרו ממשקי API של גודל שהניחו שמדובר במלבן עם נקודת מוצא ב-0,0
    • הוספנו API להשמדה ל-Radius
    • העברנו פונקציות שונות של תוסף RoundRect להיות מאפיינים במקום פונקציות
    • ‫(I8f5c7, ‏ b/168762961)
  • הפונקציה foundation.Box הוצאה משימוש. במקומה צריך להשתמש ב-foundation.layout.Box. (Ie5950, b/167680279)
  • שם המקבץ שונה ל-Box. ה-Box הקיים יוצא משימוש לטובת ה-Box החדש ב-compose.foundation.layout. ההתנהגות של Box החדש היא הצבת רכיבי צאצא אחד מעל השני כשיש לו כמה רכיבי צאצא – זה שונה מ-Box הקודם, שהתנהג בצורה דומה ל-Column. (I94893, ‏ b/167680279)
  • הפרמטרים של קישוט התיבה הוצאו משימוש. אם רוצים להוסיף קישוטים או ריווח לתיבה, צריך להשתמש במקום זאת ב-Modifiers (‏Modifier.background, ‏ Modifier.border, ‏ Modifier.padding) (Ibae92, ‏ b/167680279)
  • עודכנו הרבה ממשקי API של גרפיקה
    • עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה בהיקף מוגבל כדי לציין שהטרנספורמציה מוחלת רק בתוך הקריאה החוזרת ומוסרת אחרי שהקריאה החוזרת מופעלת
    • עדכנו את התיעוד של clipPath כך שיפנה אל Path במקום אל מלבן מעוגל
    • תוקן הרווח במסמכי התיעוד של הפרמטר right ב-clipPath
    • השם של DrawScope.drawCanvas שונה ל-drawIntoCanvas והוסר פרמטר הגודל
    • שמות הפרמטרים dx/dy בשיטת inset שונו ל-horizontal ו-vertical
    • נוספה פונקציית עומס יתר של inset שמספקת את אותו ערך inset לכל 4 הגבולות
    • הסרנו את התיעוד בנושא שיטת ההזחה, שצוין בו שההזחה תחול על כל 4 הצדדים
    • עדכון המסמכים של המחלקה Rect
    • עדכון ההערות על פרמטרים של Rect כדי להתאים לסגנון kdoc
    • הוסרו Rect.join ו-Rect.expandToInclude
    • נוצר עומס יתר עבור Rect.translate(offset) ו-Rect.shift הוצא משימוש
    • (If086a, ‏ b/167737376)
  • הוספת ההערה ‎@VisibleForTesting ל-rootAnimationClockFactory, ‏ transitionsEnabled,‏ blinkingCursorEnabled ו-textInputServiceFactory, הפיכתם ל-API פנימי והסתרת ה-kdoc שלהם (I554eb, ‏ b/168308412)
  • כדי להשבית את הבחירה שמוגדרת כברירת מחדל ולמנוע התנהגות בלתי צפויה, צריך להסיר את SelectionContainer מהחלק העליון. אפשר להשתמש ב-SelectionContainer כדי לעטוף את התוכן שצריך להיות ניתן לבחירה. (I8dfe0, b/158459594)

גרסה ‎1.0.0-alpha03

16 בספטמבר 2020

androidx.compose.ui:ui-*:1.0.0-alpha03 מופץ. גרסה ‎1.0.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • הסרת פעולות סמנטיות של גלילה קדימה או אחורה. נוספו שלבים ב-AccessibilityRangeInfo. (Ia47b0)
  • הוסר onInvalidate() מהרשימה Owner -- OwnedLayer מטפל בביטול תוקף. (Ica72b, ‏ b/162061312)
  • הוסרו שיטות של אופרטורים ב-Size API שצורכות פרמטרים של Offset. התוצאה של הפעולות האלה לא ברורה, והסוג של התוצאה לא צפוי. לדוגמה, אם הפונקציה size - offset מחזירה הפרש, האם היא צריכה להחזיר את ההפרש או את הגודל?

    הוסרו גם שיטות שהוצאו משימוש במחלקה Size. (Iec902, b/166514214)

תיקוני באגים

  • תוקנה הבעיה שבה לפעמים פריטים של LazyColumn נמשכו בצורה שגויה, מה שגרם גם לקריסות בתנאים מסוימים. (Ibcf17, ‏ b/163066980, ‏ b/165921895)
  • הוצאנו משימוש את DpConstraints ואת ממשקי ה-API שמשתמשים בו. (I90cdb, ‏ b/167389835)
  • הועברו createAndroidComposeRule וAndroidInputDispatcher מandroidx.ui.test.android אל androidx.ui.test (Idef08, ‏ b/164060572)
  • השימוש ב-gravity שונה באופן עקבי ל-align או ל-alignment ב-APIs של פריסות. (I2421a, b/164077038)
  • נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule כי השיטות הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)

גרסה ‎1.0.0-alpha02

‫2 בספטמבר 2020

androidx.compose.ui:ui-*:1.0.0-alpha02 מופץ. גרסה ‎1.0.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • הסרת קריאה חוזרת כדי להודיע לבעלים כשמשתנים הגבולות של layoutnode. (If654e, ‏ b/166106882)
  • הוספנו תמיכה בפרמטרים של filltype בנתיבים של גרפיקה וקטורית כדי לתמוך בחיתוך של צורות בהתאם לכללי מילוי הנתיבים evenOdd או NonZero. (I43dd2)
  • השיעורים Uptime ו-Velocity הם עכשיו שיעורים מוטבעים (I48f4a)
  • המאפיין 'משך' הוא עכשיו מחלקה מוטבעת (I565eb)
  • הוספת קריאה חוזרת כדי להודיע לבעלים כשמשתנים הגבולות של layoutnode. (Ic40b3)
  • תוקנה בעיה שבה בנאי הפונקציה Rect עם Offset ורדיוס יצר את ה-Rect בסדר left, right, top, bottom במקום בסדר left, top, right, bottom.

    הוסרו שיטות נלוות שהוצאו משימוש ב-Rect לטובת בנאים של פונקציות.

    נוספו בדיקות לאימות שיטות ב-Rect.kt (‏I08460, ‏ b/165822356)

תיקוני באגים

  • נוסף MutableRect, מלבן שאפשר לשנות. ‫(I71bd2, ‏ b/160140398)
  • ‫Matrix4 הוחלף ב-Matrix. כל החלקים האחרים בחבילת vectormath הוסרו. (Ibd665, ‏ b/160140398)
  • המוסכמה לקריאה לפונקציות שניתנות להרכבה השתנתה. זהו שינוי בינארי שעלול לגרום לכשל. צריך לקמפל מחדש את כל הספריות כדי שהן יפעלו עם הגרסה הזו של תוסף הקומפיילר של Compose.

    השינוי הזה לא יוצר שינוי שובר תאימות ברמת המקור, כי ממשקי ה-API היחידים שהשתנו הם ממשקי API של קומפיילר שנדרשת בהם הסכמה מפורשת. (I7afd2, b/158123185)

  • תוקנה קריסה שיכולה להתרחש כששליחה ל-PointerInputFilter עלולה לגרום להסרה סינכרונית של ה-PointerInputFilter. (I58f25)

גרסה 1.0.0-alpha01

‫26 באוגוסט 2020

androidx.compose.ui:ui-*:1.0.0-alpha01 מופץ. גרסה 1.0.0-alpha01 מכילה את השמירות האלה.

גרסה ‎0.1.0-dev

גרסה 0.1.0-dev17

‫19 באוגוסט 2020

androidx.compose.ui:ui-*:0.1.0-dev17 מופץ. גרסה ‎0.1.0-dev17 מכילה את השמירות האלה.

שינויים ב-API

  • האפשרות emitView הוצאה משימוש. אם אפשר, משתמשים ב-AndroidView כדי להוציא Views בתוך Compose. שימו לב: בעתיד לא תהיה תמיכה בהוספה ישירה של רכיבי Views ו-ViewGroups, אלא אם הם רכיבי עלים בעץ ההרכב. במקרה כזה, אפשר להשתמש ב-AndroidView. (I29b1e, ‏ b/163871221)
  • FocusState2 הוצא משימוש והוחלף ב-FocusState (Ia8b79, ‏ b/160822876, ‏ b/160923332)
  • הוסרו עומסי היתר (overloads) של AndroidView שהוצאו משימוש. (I946b9, ‏ b/163802393)
  • עכשיו אפשר להצהיר בפונקציות emit מותאמות אישית שאפשר לדלג על אחת או יותר מהפונקציות setter שלהן ולבצע קומפוזיציה מחדש באופן עצמאי. (Ibbd13)
  • שינינו את מחלקות הווקטור כך שלא יהיו יותר מחלקות נתונים, כי נעשה שימוש באותו מופע אובייקט ליצירה.

    הוספנו את הדגל mutableStateOf ל-VectorPainter כדי לצייר מחדש באופן מותנה אם התוכן של הווקטור משתנה.

    בוצע רפקטורינג של מופע VectorComponent כדי שיהיה חלק מ-VectorPainter, כי נעשה בו שימוש חוזר בכמה קומפוזיציות.

    העדכון של GroupComponent ו-PathComponent מאפשר לשנות את השדות של השמות שלהם (Ieae45, ‏ b/151378808)

  • הוסרו onChildPositioned ו-OnChildPositionedModifier. המפתחים צריכים להשתמש ב-onPositioned וב-OnPositionedModifier בפריסת הצאצא במקום זאת. ‫(I4522e, ‏ b/162109766)

  • ההיסט הפך למחלקה מוטבעת (Iaec70)

  • נוסף פרמטר של שינוי ל-SelectionContainer (I4aada, ‏ b/161487952)

  • הוסר FocusModifier שיצא משימוש (I0b4ba, ‏ b/160922116, ‏ b/160821157, ‏ b/162441435, ‏ b/160822875, ‏ b/160921940)

  • הפונקציה mergePolicy lambda נוספה אל SemanticsPropertyKey. אפשר להשתמש בה כדי להגדיר מדיניות מותאמת אישית למיזוג סמנטי של mergeAllDescendants. מדיניות ברירת המחדל היא להשתמש בערך של ההורה אם הוא כבר קיים, אחרת בערך של הצאצא. (Iaf6c4, b/161979921)

  • האילוצים הם עכשיו מחלקה מוטמעת (I88736)

  • נוסף FocusManager שמעביר לוגיקת מיקוד משותפת מ-AndroidComposeView ‏ (I528ef, ‏ b/161487952, ‏ b/162206799)

  • שמות מעודכנים של PointerEventPass לגרסת אלפא. (Ifda6f)

  • ‫IntOffset הוא עכשיו מחלקה מוטבעת (Iac0bf)

  • ‫IntSize היא עכשיו מחלקה מוטבעת (I2bf42)

  • השם של PlacementScope.placeAbsolute() שונה ל-PlacementScope.place(), והשם הקודם PlacementScope.place() שונה ל-PlacementScope.placeRelative(). כתוצאה מכך, השיטה PlacementScope.place() לא תשקף יותר באופן אוטומטי את המיקום בהקשרים של כתיבה מימין לשמאל. אם רוצים להשתמש במדיניות הזו, צריך להשתמש במדיניות PlacementScope.placeRelative() במקום זאת. (I873ac, ‏ b/162916675)

  • ‫AlertDialog משתמש עכשיו ב-FlowRow ללחצנים (I00ec1, ‏ b/161809319, ‏ b/143682374)

  • חלק מכלי הבדיקה לא מוגדרים כציבוריים כי הם לא נמצאים במקום הנכון. תהיה גלויה באופן ציבורי בעתיד. (I32ab1)

  • שינוי מבנה הקוד של קלט מצביע. (Ie3f45)

  • הוצאה משימוש של PxBounds לטובת Rect. עדכנו את כל השימושים ב-PxBounds באמצעות rect והוספנו הערות מתאימות של deprecate/replace with כדי לעזור במיגרציה. (I37038, b/162627058)

  • הוסר KeyEvent2 שהוצא משימוש. במקומו, צריך להשתמש ב-KeyEvent. ‫(Ied2d0, ‏ b/162097587)

  • ל-KeyEvent יש מאפיין unicode שאפשר להשתמש בו כדי לקבל את תו ה-Unicode שנוצר על ידי השילוב של המקש שצוין ומצב מקש המטא (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)
  • הוסרו קריאות ל-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 והוצאו משימוש בנאים של פונקציות 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)
  • נוסף ה-API‏ AndroidViewBinding להרחבת משאבי פריסה ולחיבור שלהם, על סמך ViewBinding. (I081c6)
  • הוחלף KeyEvent2 ב-KeyEvent ‏ (I2d770, ‏ b/162097585)
  • הוספנו תמיכה במקש Alt פיזי (I9036b)
  • התכונה FocusManager הוצאה משימוש. במקום זאת, צריך להשתמש ב-Modifier.focus()‎, ב-Modifier.focusObserver()‎ וב-Modifier.focusRequester()‎. (I74ae4, b/162211322)
  • ‫loadVectorResource תומך במאפייני trimPath ‏ (I808fe)
  • העברת תיבת דו-שיח לממשק המשתמש (I47fa6)
  • הוסרו 2 PointerEventPasses שכבר לא נדרשים. (I33ca7)
  • הוטמע PointerInteropModifier שמאפשר לקבל MotionEvents ולקיים אינטראקציה עם Compose כאילו מדובר בהטמעה של Android View. (Ieb08c)
  • הוסר שינוי התג שיצא משימוש. במקומו צריך להשתמש ב-layoutId. (Idaa05, b/162023919)
  • ממשקי ה-API לתמיכה בכתיבה מימין לשמאל עודכנו. נוסף LayoutDirectionAmbient, שאפשר להשתמש בו כדי לקרוא ולשנות את כיוון הפריסה. הוסרו Modifier.rtl ו-Modifier.ltr. (I080b3)
  • תמיכה בחיתוך נתיבים בגרפיקה וקטורית (Ie16c9, ‏ b/158188351)
  • נוסף Modifier.layout()‎ שמאפשר ליצור בקלות שינוי פריסה בהתאמה אישית (I73b69, ‏ b/161355194)
  • נוסף AndroidView API חדש, והוצאו משימוש ממשקי ה-API הקיימים. (I5bcfd)
  • ה-API‏ 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)
    1. הסרה של הממשק OffsetBase שלא נמצא בשימוש
    2. התאמה בין המחלקות Offset ו-IntOffset כדי ליצור ממשק API עקבי
    3. משנים את השם של IntOffset.Origin ל-IntOffset.Zero כדי לשמור על עקביות עם Offset API
    4. העברנו את השיטה nativeCanvas מחוץ לממשק Canvas כדי לאפשר לצרכנים ליצור מופעי Canvas משלהם
    5. נוצר קטע קוד חלופי (stub) בשם EmptyCanvas כדי לארגן את הקוד מחדש (refactor) ב-DrawScope כך שיהיה פרמטר שאינו null במקום lateinit, וכדי להבטיח שהשדה לא יהיה null.
    6. שינינו את השם של סוגי ה-enum של ClipOp ל-Pascal Case
    7. השמות של הערכים המנויים (enums) של FilterQuality שונו ל-Pascal Case
    8. השמות של ה-enum‏ StrokeJoin שונו ל-Pascal Case
    9. שמות הערכים של PointMode שונו ל-Pascal Case
    10. שונה השם של סוגי ה-enum‏ PaintingStyle ל-Pascal Case
    11. שינוי השם של סוגי ה-enum‏ PathFillType ל-Pascal Case
    12. השם של סוגי ה-enum‏ StrokeCap שונה ל-Pascal Case
    13. היישום של DrawCache עודכן כך שהוא לא משתמש יותר בפרמטרים של lateinit
    14. עדכנו את DrawScope כך שלא ישתמש יותר בהעברת הרשאה עצלה לפרמטרים הפנימיים fillPaint ו-strokePaint
    15. בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
    16. עדכון של המחלקה Outline כך שתכלול הערות @Immutable
    17. הוספנו הערות @Immutable לכל הוראת נתיב ב-PathNode
    18. בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון מותנה, כי Compose כבר מטפל בהן
    19. הוצאנו משימוש את שיטות ה-constructor של Rect companion לטובת פונקציות constructor
    20. עדכון של מחלקות Brush ושל בנאי פונקציות באמצעות ממשקי API‏ @Immutable ו-@Stable
    21. העדכון של ספירת הערכים (enum) VertexMode ל-PascalCase
    22. השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה פרמטרים של קו בציור אם הם השתנו
    23. העדכון של Size כולל הוספה של API לפירוק מבנה, שינוי השם של UnspecifiedSize ל-Unspecified והסרה של שיטות שלא נמצאות בשימוש
  • עדכון של השימוש ב-Compose BlendMode API כדי למפות בצורה נכונה בין מצבי 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)
  • השם של Material FilledTextField שונה ל-TextField, והשם של foundational TextField שונה ל-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)
  • הוספת סרגל כלים צף לבחירת שדה טקסט. (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)
  • ה-API‏ KeyEvent הוצא משימוש והוחלף ב-KeyEvent2 ‏ (I68730)
  • נוסף דגל אופציונלי חדש useUnmergedTree לבדיקת כלי חיפוש. (I2ce48)
  • ‫Made LayoutNode experimental API (I4f2e9)
  • הוספנו שיטות העתקה לסוגים שונים של מחלקות מוטבעות, כולל:

    • היסט
    • גודל
    • רדיוס
    • תנועה
    • TransformOrigin

    • הוצאה משימוש של השיטה Size.copy של אובייקט נלווה לטובת שיטת העתקה של מופע (Ife290, b/159905651)

  • חלונות קופצים, תיבות דו-שיח ותפריטים מקבלים עכשיו בירושה את MaterialTheme ההקשרי (Ia3665, b/156527485)

  • השם של TextDirection השתנה ל-ResolvedTextDirection ‏ (I3ff38)

  • הוסר פרמטר כיוון הפריסה מבלוק המידה של הפונקציה Layout(). עם זאת, כיוון הפריסה זמין בתוך הקריאה החוזרת דרך אובייקט היקף המדידה (Ic7d9d)

  • שינוי מבנה של SelectionHandles לשימוש חוזר. (I420e0)

  • המאפיין Clickable הוסר. שימוש ב-Modifier.clickable ‏ (I84bdf)

  • התכונות TestTag ו-Semantics נמחקו. במקום זאת, אפשר להשתמש ב-Modifier.testTag וב-Modifier.semantics ‏ (I15ff0,‏ b/158841414)

  • לפני השינוי הזה, התוסף של מקמפל Compose היה מיירט קריאות ל-constructors בתוך פונקציה קומפוזבילית באופן לא טריוויאלי אם היה (I5205a, b/158123804)

  • השם של Modifier.tag שונה ל-Modifier.layoutId, כדי למנוע בלבול עם Modifier.testTag. (I995f0)

  • המיקומים של קו היישור שמוחזרים מ-Placeable#get(AlignmentLine) כבר לא יכולים להיות null. אם קו היישור המבוקש חסר, יוחזר AlignmentLine.Unspecified. ‫(I896c5, ‏ b/158134875)

  • נוסף פרמטר של modifier (משנה) ל-composable‏ AndroidView. ‫(I48a88, ‏ b/158746303)

  • הפונקציה Semantics()‎ הוצאה משימוש. במקומה צריך להשתמש ב-Modifier.semantics()‎. (I72407, b/158841414)

  • הוספת פונקציית viewModel() composable שמאפשרת ליצור ViewModel או לקבל ViewModel שכבר נוצר, באופן דומה לאופן שבו היא פועלת ב-Activity או ב-Fragment (I5fdd1)

  • השימוש ב-IntPx הוחלף ב-Int. השימוש ב-IntPxPosition הוחלף ב-IntOffset. המאפיין IntPxSize הוחלף במאפיין IntSize. (Ib7b44)

  • כדי לאחד את מספר הכיתות שמשמשות לייצוג מידע על גודל, צריך להשתמש בכיתת הגודל במקום ב-PxSize. השימוש בשיטה הזו מאפשר ליהנות מהיתרונות של מחלקה מוטמעת כדי להשתמש בערך מסוג long לאריזת 2 ערכים מסוג float שמייצגים רוחב וגובה. (Ic0191)

  • כדי לצמצם את מספר המחלקות שמשמשות לייצוג נתוני מיקום, כדאי להשתמש במחלקה Offset במקום ב-PxPosition. השימוש במחלקה מוטבעת מאפשר לנצל ערך מסוג long כדי לארוז 2 ערכים מסוג float שמייצגים את ההיסטים x ו-y, שמוצגים כערכים מסוג float. (I3ad98)

  • החלפנו את השימוש במחלקת Px במחלקות שונות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים. מחקנו את הכיתה Px במלואה (I3ff33)

  • החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I086f4)

  • החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (Id3434)

  • החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I97a5a)

  • התג TestTag הוצא משימוש. במקומו, צריך להשתמש ב-Modifier.testTag. (If5110, b/157173105)

  • ההטמעה של ParentDataModifier#modifyParentData שהוגדרה כברירת מחדל, לא עושה כלום והוסרה – היא הייתה שוות ערך לאי-הטמעה של הממשק מלכתחילה. (I0deaa)

  • הפונקציה ScaleFit שהוצאה משימוש הוסרה. במקומו, צריך להשתמש ב-ContentScale. (Ifbc5b)

  • החלפנו את השימוש במחלקה Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I19d02)

  • נוסף הרכיב DropdownMenu ב-ui-material, הטמעה של תפריט Material Design. (I9bb3d)

  • הוסר LayoutTag()‎ שהוצא משימוש. במקומו צריך להשתמש ב-Modifier.tag()‎. הסרנו את השיטה Modifier.matchParent()‎ שהוצאה משימוש. במקומה צריך להשתמש ב-Modifier.matchParentSize()‎. ‫(If8044)

  • החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I57bff)

  • הפונקציה Modifier.semantics הוצאה משימוש כדי לאפשר שימוש ברכיבים ברמה גבוהה. (I4cfdc)

  • איחדנו את ההטמעות של CanvasScope, כך שעכשיו יש רק DrawScope ו-ContentDrawScope. שינינו את השם של CanvasScope ל-DrawScope. בוצע עדכון של DrawScope כדי להטמיע את הממשק Density ולספק את LayoutDirection מחלקת המשנה DrawScope נמחקה ב-ContentDrawScope בוצע עדכון של Painter ו-PainterModifier כדי שלא יחזיקו יותר במאפיין RTL בעצמם, כי DrawScope כבר מספק את זה בלי לספק אותו באופן ידני (I1798e)

  • ‫DoubleTapGestureFilter מבחין עכשיו בין SingleTapGestureFilter בעץ. (If92b1)

  • עדכנו את Alignment API והוספנו תמיכה ביישור מוחלט (שלא מתבצע בו שיקוף אוטומטי בהקשר של כתיבה מימין לשמאל) (I38cd3)

  • בוצעו שינויים ב-DrawLayer modifiers API: השם של outlineShape שונה ל-shape, ערך ברירת המחדל שלו הוא RectangleShape והוא כבר לא יכול להיות null. השם של clipToOutline שונה ל-clip. האפשרות clipToBounds הוסרה כי היא זהה ל-clip == true עם RectangleShape ‏ (I7ef11,‏ b/155075735)

  • ממשקי API ברמה גבוהה יותר של Compose עודכנו כך שבמקום Canvas הם חושפים CanvasScope. כך הצרכנים לא צריכים לשמור אובייקטים של 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 כדי שיהיה באותו מודול כמו 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, והוא מיישם את האופרטור get()‎ במקום זאת כדי לאחזר ערך. כך קל יותר לשנות ערך אחד או יותר בקבוצה בלי ליצור אוסף חדש לכל משנה. (I0245a)

  • לתכונה LayoutCoordinates אין יותר תכונת מיקום. המאפיין position לא הגיוני כשמביאים בחשבון LayoutModifiers,‏ rotation או scaling. במקום זאת, מפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מקואורדינטת פריסה אחת לקואורדינטת פריסה אחרת.

    ב-LayoutCoordinates נעשה שימוש ב-IntPxSize במאפיין size במקום ב-PxSize. בפריסות משתמשים בגדלים של מספרים שלמים בפיקסלים, ולכן כל הגדלים של הפריסות צריכים להיות מספרים שלמים ולא ערכים של נקודה צפה. (I9367b)

  • שיפורים בפלטפורמת ה-API של Constraints‏ (I0fd15)

  • נוצר CanvasScope API שעוטף אובייקט Canvas כדי לחשוף משטח API לציור דקלרטיבי בלי שמירת מצב. הטרנספורמציות מוגבלות להיקף של המקלט שלהן, וגם נתוני הגודל מוגבלים לגבולות התואמים של התוסף. הוא לא מחייב את הצרכן לשמור אובייקט משלו של מצב הצבע כדי להגדיר פעולות ציור.

    • נוספה האפליקציה CanvasScopeSample, ואפליקציית ההדגמה עודכנה כך שתכלול הדגמה של גרפיקה הצהרתית (Ifd86d)
  • הוסר MaskFilter API שלא היה בשימוש כי השימוש בו מוגבל והוא לא מותאם להאצת חומרה ברוב תרחישי השימוש (I54f76)

  • ‫RectangleShape הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, ‏ b/154507984)

  • החלפנו את כל השימושים ב-Color שניתן להגדיר כ-nullable ב-API בשימושים ב-non-nullable, והשתמשנו ב-Color.Unset במקום ב-null ‏ (Iabaa7)

  • הוספנו פרמטר אופציונלי נוסף של rect ל-ImagePainter כדי לתמוך בציור של חלק משני של ImageAsset הבסיסי (I0ea9e)

  • נוסף צבע לא מוגדר כדי לייצג ערך לא מוגדר בלי להשתמש ב-boxing של צבעים. (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, רק שבמקום ImageAsset הוא משתמש ב-VectorAsset (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)
  • בוצע Refactoring ב-PainterModifier כך שהוא לא מספק יותר קנה מידה על סמך האילוצים שצוינו והפרמטר ContentScale. ההטמעות של Painter צריכות לשנות את קנה המידה של תוכן הציור בעצמן על סמך הגודל הנתון של DrawScope שהן מציירות לתוכו.

    תוקנה בעיה שבה גודל מפת הסיביות של מטמון VectorPainter נקבע לגודל ברירת המחדל שלו במקום לגודל שצוין לציור.

    העדכנו את ImagePainter כך שישנה את קנה המידה של התוכן שלו במקום להסתמך על PainterModifier שיעשה זאת בשמו. (I6ba90)

  • הוספת פונקציה ברמה העליונה עם פרמטר frameNanos לתזמון אנימציה (Ie34c5)

  • ההערה @Untracked הוצאה משימוש. Replace with @ComposableContract(tracked=false) (Id211e)

  • המאפיינים androidx.ui.foundation.TextFieldValue ו-androidx.ui.input.EditorValue הוצאו משימוש. גם רכיבי ה-TextField,‏ FilledTextField ו-CoreTextField הניתנים להרכבה שמשתמשים בסוג הזה הוצאו משימוש. במקומה, אפשר להשתמש ב-androidx.ui.input.TextFieldValue (‏I4066d,‏ b/155211005)

  • תוקנה בעיה שבה שליחת קלט של מצביע גרמה לקריסה אם מסנני קלט של מצביע הוסרו באמצעות 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. ביטויים שניתנים להרכבה בביטויי ארגומנטים שמוגדרים כברירת מחדל מטופלים עכשיו בצורה נכונה

    העבודה הזו כללה כמה אופטימיזציות: ‫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 נפרד. חלק מהפרמטרים בלחצן קיבלו שם חדש או שונה הסדר שלהם. (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)