ממשק המשתמש של הכתיבה

רכיבים בסיסיים בממשק המשתמש של הרכבה שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, שרטוט וקלט.
העדכון האחרון גרסה יציבה מועמד לפרסום גרסת בטא גרסת אלפא
4 בספטמבר 2024 1.7.0 - - 1.8.0-alpha01

מבנה

תהליך הכתיבה הוא שילוב של 7 מזהי קבוצות Maven בתוך androidx. כל קבוצה מכיל קבוצת משנה מטורגטת של פונקציונליות, שלכל אחת מהן יש גרסה משלה הערות.

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

קיבוץתיאור
compose.animationיוצרים אנימציות באפליקציות 'Jetpack פיתוח נייטיב' כדי להעשיר את חוויית המשתמש.
compose.compilerשינוי פונקציות @Composable והפעלת אופטימיזציות באמצעות פלאגין מהדר של Kotlin.
compose.foundationכתיבת אפליקציות ב-Jetpack פיתוח נייטיב עם אבני בניין מוכנות לשימוש והרחבת היסודות לבניית חלקים משלכם במערכת העיצוב.
compose.materialבניית ממשקי משתמש ב-Jetpack פיתוח נייטיב עם רכיבים מוכנים לשימוש ב-Material Design. זו נקודת הכניסה ברמה הגבוהה יותר של 'כתיבה', שנועדה לספק רכיבים שתואמים לאלה שמתוארים באתר www.material.io.
compose.material3בניית ממשקי משתמש ב-Jetpack פיתוח נייטיב עם רכיבי Material Design 3, הפיתוח הבא של עיצוב Material Design. Material 3 כולל עיצוב ורכיבים מעודכנים ותכונות התאמה אישית של Material You, כמו צבעים דינמיים, ונועד להיות אחיד עם הסגנון החזותי החדש של Android 12 וממשק המשתמש של המערכת.
compose.runtimeאבני הבניין הבסיסיות של מודל התכנות וניהול המצבים של Compose, ושל זמן הריצה העיקרי של הפלאגין Compose Compiler לטירגוט.
compose.uiרכיבים בסיסיים בממשק המשתמש של הרכבה שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, שרטוט וקלט.

הצהרה על יחסי תלות

כדי להוסיף תלות בכתיבה, צריך להוסיף את מאגר Google Maven פרויקט. למאגר Maven של Google אפשר לקבל מידע נוסף.

מוסיפים את יחסי התלות של פריטי המידע הנדרשים בקובץ build.gradle בשביל האפליקציה או המודול שלך:

Groovy

dependencies {
    implementation "androidx.compose.ui:ui:1.7.1"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

משוב

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

דיווח על בעיה חדשה

מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.

גרסה 1.8

גרסה 1.8.0-alpha01

4 בספטמבר 2024

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

גרסה 1.7

גרסה 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 או חדש יותר. המדיניות הזו נאכפה כדי לתקן חוסר תאימות בהתנהגות בין ממשק המשתמש לבין הבסיס ביחס לשינויים ב-NestedScrollSource שהתרחשו בשלב מוקדם של 1.7.0-alpha01.

גרסה 1.7.0-beta07

7 באוגוסט 2024

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

תיקוני באגים

  • עכשיו פונקציות SemanticsNodeInteraction שקשורות לקלט טקסט: performTextReplacement, performTextInput ו-performTextClearance, יקפיצו שגיאות טענת נכוֹנוּת (assertion) כשמפעילים אותן במצב קריאה בלבד TextFields. (I4ae8f)

גרסה 1.7.0-beta06

24 ביולי 2024

androidx.compose.ui:ui-*:1.7.0-beta06 משוחרר. גרסה 1.7.0-beta06 כוללת את ההתחייבויות האלה.

גרסה 1.7.0-beta05

10 ביולי 2024

androidx.compose.ui:ui-*:1.7.0-beta05 משוחרר. גרסה 1.7.0-beta05 כוללת את ההתחייבויות האלה.

תיקוני באגים

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

גרסה 1.7.0-beta04

26 ביוני 2024

androidx.compose.ui:ui-*:1.7.0-beta04 משוחרר. גרסה 1.7.0-beta04 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • מניעת קריסות כשמודדים שורות טקסט גדולות מאוד (למשל, 10,000 תווים) (8157ab)
  • השבתת התמיכה ברינדור תוכנה ל-API של GraphicsLayer. (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 עודכן לצורך קבלת קישורים מעוצבים בטקסט. באופן ספציפי, הסרנו את השיטות מ-TextDefaults לבניית LinkAnnotations בנושא מסוים ולניתוח HTML עם קישורים מעוצבים. במקום זאת, הוספנו מחלקה TextLinkStyles שמאפשרת לעצב את הקישורים כפרמטר לתוכן הקומפוזבילי של טקסט. (I31b93)

תיקוני באגים

  • תיקון של תרחישים נוספים לדוגמה כשמוסיפים באופן דינמי מגבילי קלט של מצביע במהלך אירועים 63e1504

גרסה 1.7.0-alpha08

1 במאי 2024

androidx.compose.ui:ui-*:1.7.0-alpha08 משוחרר. גרסה 1.7.0-alpha08 מכילה את התחייבויות אלה.

שינויים ב-API

  • הוספת תמיכה בהטמעות של צורות ניתנות לשינוי. עכשיו ניתן לראות את Shape#createOutline בתוך שכבות גרפיקה, כך שקריאת ערכי מצב בתוך שכבות הגרפיקה תגרום לחוסר תקפות כשהמצב משתנה, וכך יתקבלו אנימציות צורה בעלות ביצועים טובים יותר. (Id1629, b/326070216)
  • השם של isPositionedByParentWithDirectManipulation השתנה. השם החדש הוא introducesFrameOfReference. הערה: עכשיו יש לה את ההשפעה ההפוכה. כלומר, כברירת מחדל, רוב LayoutCoordinates כוללים מסגרת של הפניה. בנוסף, רק כשמציבים את הסמן שלה על ידי מניפולציה ישירה, הנכס יוגדר כ-FALSE. כדי לבצע שאילתה על מיקום רק עם מיקומים שמציגים מסגרת התייחסות, יש להשתמש ב-positionInLocalFrameOfReference(...). או positionInLocalLookaheadFrameOfReference מ-LookaheadScope. (Ifc5f7)
  • ממשקי ה-API של LookaheadScope הפכו ליציבים (I21507)
  • שינוי הפעולה lambda עבור getScrollViewportLength בהתאם למשוב של מועצת ה-API. (Ibc74a)
  • ממשקי ה-API של Outline ב-GraphicsLayer עודכנו ועכשיו הם צורכים פרמטרים צפים במקום int. הוסרו ערכי סנטינל UnsetOffset/UnsetSize IntSize לטובת קבועים קיימים שלא צוינו במחלקות מוטבעות מבוססות-ציפה וגודל (I2fb03, b/333863462)
  • כשמכניסים קלט עכבר במהלך בדיקות, MouseInjectionScope.click(), MouseInjectionScope.doubleClick(), MouseInjectionScope.tripleClick(), MouseInjectionScope.longClick() מקבלים עכשיו פרמטר button: MouseButton כדי שיהיה רלוונטי יותר לכולם. ערך ברירת המחדל הוא MouseButton.Primary לכל השיטות. (I31a23, b/190493367, b/261439695)
  • השם של onClicked השתנה בתוך LinkInteractionListener. השם החדש הוא onClick. (Iaa35c)
  • שינוי השם של TextInclusionStrategy.isInside לשם isIncluded. הגדרת סוג ההחזרה Paragraph/MultiParagraph#getRangeForRect() כ-null. (I51f26)

תיקוני באגים

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

תרומה חיצונית

  • נוספה תמיכה באחזור מראש של פריטים בLazyLists מקונן (למשל LazyColumn שמעבד LazyRows מקונן). השינוי הזה צפוי לצמצם ירידות פריימים במהלך הגלילה בLazyLists האלה. ברירת המחדל של ההטמעה היא שליפה מראש (prefetch) של 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 הזה לתוכן הקומפוזבילי של טקסט. (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. באופן דומה, פריסה שמשנה את מיקום הצאצאים שלה לעיתים קרובות יכולה עכשיו למקם אותם באמצעות withDirectManipulationPlacement (כמו Scroll, מיושם כברירת מחדל). כך אנימציות מבוססות approachLayout יכולות להיות יותר אינטואיטיביות, כך שיש עכשיו הזדמנות להבחין בין ההיסט להנפשה ומה צריך ליישם ישירות כשמחליטים ליצור אנימציה. (I60ec7)
  • סימון התכונה עבור צילומי מסך ארוכים הוסר. (I28648, b/329128246)
  • LazyColumn יעבד עכשיו כותרות במיקום קבוע בצילומי מסך ארוכים. (I8d239, b/329296635)
  • NestedScroll מקורות 'גרירה והיפוך' מוחלפים ב-UserInput וב-SideEffect כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללים עכשיו אנימציות (אפקט צד) וגלגל העכבר ומקלדת (UserInput). (I40579)
  • ApproachLayoutModifierNode ו-Modifier.approachLayout יציבים עכשיו, עם isMeasurementApproachInProgress() ו-isPlacementApproachInProgress() החדשים שמחליפים את isMeasurementApproachComplete() ו-isPlacementApproachComplete() הישנים בהתאמה.
  • הוסר תכונת הצירוף intermediateLayout שהוצא משימוש. (I3e91c)
  • יש לשנות את השם של GraphicsLayer#buildLayer כדי להקליט ולשקף את שיטות ההתחלה/endRecording בממשקי API שמגובים ברשימת Displaylist, כמו RenderNode ו-Picture.
  • ההגדרה rememberGraphicsLayer עודכנה כדי לאפשר שימוש ב-rememberObserver. (I312c1, b/288494724, b/330758155)
  • ההוראה UrlAnnotation הוצאה משימוש. במקומה צריך להשתמש במדיניות LinkAnnotation.Url. אם משתמשים בעיצוב מהותי, אז משתמשים באובייקט TextDefaults כדי ליצור את ההערה עם עיצוב מהותי (I8d180, b/323346545)
  • בוצעה לחיצה על אפשרות עיצוב מצב בקישורי טקסט בנוסף לעיצוב רגיל, העברת העכבר מעל והתמקדות (I5f864, b/139312671)
  • השם של String.parseAsHtml השתנה ל-AnnotatedString.Companion.fromHtml. (I43dcd)
  • נוספו ארגומנטים מסוג סגנון (linkStyle, focusedLinkStyle, hoveredLinkStyle) ומאזינים לאינטראקציה עם קישור ל-method parseAsHtml. כשמנתחים את המחרוזת המתויגת ב-HTML באמצעות תגי <a>, השיטה תיצור LinkAnnotation.Url לכל תג כזה ותעביר את האובייקטים של העיצוב ואת ה-listener לאינטראקציה של הקישור לכל הערה. (I7c977)
  • עכשיו LinkAnnotation לוקחת את הארגומנטים של סגנון מבוסס-מצב ואת הפונקציה LinkInteractionListener. יש להוסיף את ההערה הזו אל AnnotatedString כדי לקבל היפר-קישור. העברה של focusedState ו/או hoveredState מאפשרת להגדיר את הערך החזותי configuration של קישורים כשהם ממוקדים או מעבירים את העכבר מעל לקישורים. (I81ce4, b/139312671)
  • הערך של ImeOptions.hintLocales כבר לא יכול להיות null. אם ברצונך להעביר רשימת לוקאלים ריקה, צריך להשתמש ב-LocaleList.Empty. (Ic5bc4)

תיקוני באגים

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

גרסה 1.7.0-alpha06

3 באפריל 2024

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

תכונות חדשות

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

שינויים ב-API

  • הערך בעמודה fun ClipEntry.getMetadata() השתנה ל-val ClipEntry.clipMetadata. (I50155)
  • הפונקציות ClipboardManager.getClipMetadata ו-ClipboardManager.hasClip הוסרו. יש להשתמש ב-clipEntry.getMetadata() כדי לקרוא את המטא-נתונים של רשומת הקליפ הנוכחית. צריך גם לבדוק את התוצאה של ClipboardManager.getClip אם היא ריקה או לא כדי להבין אם יש קליפ נוכחי בלוח. (I50498)
  • עכשיו אפשר להעביר אובייקטים של GraphicsLayer לפונקציות placeable.placeWithLayer() (I1b22f)
  • האפליקציה ClipboardManager.setClip מקבלת עכשיו את הערך null כדי לנקות את הלוח. (I7d2e9)
  • נוספו מזהי משאבים לעזרה בהסתרת תצוגות שמשמשות מפרטי ההטמעה בכלי build (I99531)
  • שיטת ההשעיה GraphicsLayer#toImageBitmap נוספה כדי לתמוך ברינדור של תוכן ממפת סיביות (bitmap) לGraphicsLayer. זוהי פעולת רינדור מהירות באמצעות חומרה ברמת API 22 ומעלה (כולל), שתומכת ביותר מ-99% מכל מכשירי Android. ב-Android API ברמה 21, אין צורך בעיבוד תוכנה. (I9e114)
  • שיטת עזרה להמרת RectF של Android ל-ComposeRect (I39925, b/325660505)
  • כברירת מחדל, כל הפרמטרים מסוג KeyboardOptions כוללים עכשיו ערך לא מוגדר. השיטה KeyboardOptions.merge נוספה.
  • שיניתם את השם של KeyboardOptions.autoCorrect ל-autoCorrectEnabled והפכו את השם ל-null. הערך 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 מכילה את התחייבויות אלה.

תכונות חדשות

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

שינויים ב-API

  • GraphicsLayer.draw(Canvas) הוא כבר לא ממשק API ציבורי. במקומה צריך להשתמש בפונקציה DrawScope.drawLayer(GraphicsLayer) של התוסף כדי לשרטט את השכבה. (I7a7c0)
  • פיצול של restrictedConstraints() לשתי שיטות: fitPrioritizingWidth() ו-fitPrioritizingHeight() (I6d7fd)
  • נוסף stub של HardwareCanvas לשימוש ב-Android L (I1c3b5, b/288494724)
  • עדכון מסגרת הכתיבה כדי לחשוף באופן מקומי הרכבה של GraphicsContext לצד עדכון הטמעות של הצירוף 'בעלים', 'DelegateableNode' ו-drawWithCache, כדי לחשוף את הגישה ל-GraphicsContext בשביל גישה בהיקף שינקה באופן אוטומטי מכונות של GraphicsLayer לאחר ביטול המגבילים. (I64a2f, b/288494724)
  • הצגת InterceptPlatformTextInput לעזרה בכתיבת מבחנים ברמה נמוכה שקשורים ל-IME ותרחישים אחרים לשימוש ב-IME ברמה נמוכה. האפשרות PlatformTextInputTestOverride הוצאה משימוש. (I862ed, b/322680547)
  • נוספה פונקציה של תוסף GraphicsLayer.setOutline(Outline). (Ib81f4)
  • הצגת constructor של פונקציות GraphicsContext כדי ליצור מפעל ליצירת מכונות GraphicsLayer (Ib98d6, b/288494724)
  • API חשיפה של GraphicsLayer כדי לספק גמישות בהגדרת המפתח לתעד פקודות של שרטוט, שאפשר להשתמש בהן כדי לצייר במקומות אחרים וגם להחיל אפקטים חזותיים שונים על התוצאה הסופית. (I80245, b/288494724)
  • מציגים את הפונקציה Paragraph#getRangeForRect שמחזירה טווח טקסט שמכוסה על ידי שטח מלבן נתון. (Iee516, b/325660505)
  • הוסר שינוי ניסיוני של BasicText עם ארגומנט onLinkClicked. בעתיד נוסיף ממשק API חלופי לתמיכה בהיפר-קישורים. (I107d5)

תיקוני באגים

  • נוספה הגדרת API של GraphicsLayer תחזית או בפועל שתומכת בתיעוד ובהפעלה מחדש של פקודות שרטוט, עם אפשרות של הרכבה של אפקטים חזותיים ושל טרנספורמציות. הצגת הממשק של GraphicsContext כך שתכלול יחסי תלות של גרפיקה, כולל יצירה וניהול של מכונות GraphicsLayer. (I4a8d6, b/288494724)
  • תוקנה בעיה של יכולת פעולה הדדית בחיפוש ממוקד חד-ממדי, שהמיקוד היה נתקע בתוך ComposeView שהוטמע בין תצוגות אחרות. (I08fd4)

תרומה חיצונית

  • הממשק LocalLifecycleOwner הועבר מממשק המשתמש של כתיבת הודעה ל-lifecycle-runtime-compose כדי שאפשר יהיה להשתמש בממשקי ה-API המסייעים שמבוססים על פיתוח נייטיב מחוץ לממשק המשתמש של הכתיבה. תודה על התרומה, 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 כדי שנוכל להעביר למערכת a11y מידע על הרכיבים שנגללים במקומם. מדיניות ה-CL הזו מחילה גם את השימוש בנכס שצוין ברשימות הבסיס לגלילה. (Ic5fa2)
  • FocusRequester.createRefs יציב עכשיו (I4d92c, b/261436820)
  • הוספנו את התכונה DelegatableNode.requireView() כדי לאפשר לצמתי מגביל לקבל את הגרסה הנוכחית של Android View בלי לקרוא יצירה מקומית של היצירה. (I40768)
  • API חדש Path.reverse() שהופך את הכיוון של נתיב (I36348)
  • הוספת את hintLocales אל KeyboardOptions כדי לספק ל-TextFields את היכולת לרמוז על עורכי שיטות קלט (IME) עם לוקאלים ספציפיים להגדרה מראש של שפה מועדפת.
  • חושפים את המאפיין platformLocale מ-Locale שמחזיר את אובייקט הפלטפורמה הבסיסי, למשל: java.util.Locale. (I921c6)

גרסה 1.7.0-alpha03

21 בפברואר 2024

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

שינויים ב-API

  • חדש: ContextualFlowRow ו-FlowRow/Column משופר עם MaxLines ו-overflow. אנחנו שמחים להכריז על שיפורים ל-FlowRow ול-FlowColumn הניסיוניים, שכוללים עכשיו maxLines ו-אפשרויות נוספות, לצד ההשקה של ContextualFlowRow ו-ContextualFlowColumn. העדכון הזה נועד לספק רכיבים שמשפרים את הביצועים, כי ContextualFlow* הוא מושלם למספר גדול של פריטים עם הגדרת maxLines קטנה ואפשרות דינמית של +N להצגת לחצנים נוספים. כמו כן, FlowRow ו-FlowColumn מושלמים למספר קטן של פריטים – פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRow או ב-FlowColumn שבהם כל הפריטים מחוברים ללא קשר אם הם מתאימים למגבלה המקסימלית של ציר הציר, צריך להגדיר את overflow ל-FlowRowOverflow.Visible או FlowColumnOverflow.Visible במהלך האתחול. אפשר לעיין ב-ContextualFlowRowSample וב-FlowRowSample כדי לראות דוגמאות של התכונות החדשות האלה בפעולה. (Ib9135, b/293577082)
  • מוסיפים את מאפיין הסמנטיקה maxTextLength שצריך להגדיר בשדות טקסט שמסננים את מספר התווים המקסימלי המותר. (I24d9f, b/170648072)
  • ה-wrapper של Modifier.inspectable הוצא משימוש. ה-API הזה יגרום ליותר פסילות של השינוי שלך מהצורך, ולכן לא מומלץ להשתמש בו עכשיו. אנחנו ממליצים למפתחים להטמיע את השיטה inspectableProperties() ב-ModifierNodeElement אם הם רוצים לחשוף מאפייני התאמה לכלים. (Ib3236)
  • בנאי חדש של PopupProperties שמאפשר שליטה מלאה בדגלים WindowManager.LayoutParams. (Ibb33e, b/312485503)
  • השקנו את DelegatableNode.requireLayoutCoordinates() כדרך לקבל את הערך בשדה LayoutCoordinates הנוכחי של Modifier.Node, בלי שיהיה צורך לשנות את הערך של onPlaced ולאחסן את הקואורדינטות בנכס בעצמכם. (Ia8657)
  • השקנו את DelegatableNode.currentLayoutCoordinates כדרך לקבל את הערך בשדה LayoutCoordinates הנוכחי של Modifier.Node, בלי שיהיה צורך לשנות את הערך של onPlaced ולאחסן את הקואורדינטות בנכס בעצמכם. (Iaebaa)
  • BasicTextField2 וממשקי API קשורים בחבילה androidx.compose.foundation.text2 מועברים אל androidx.compose.foundation.text. (I9f635)
  • נוסף ממשק API חדש של ApproachLayoutModifierNode כדי לתמוך ביצירת לוגיקת גישה מותאמת אישית בצומת Modifier מפורש. נוסף גם ממשק API ניסיוני חדש של DeferredTargetAnimation לאנימציות שהיעד שלהן לא ידוע בזמן יצירת המופע. (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)

תיקוני באגים

  • תוקן באג a11y שמאפשר ללחוץ על לחצנים שאינם כרטיסיות ו לחצנים שאינם אפשרויות בחירה כאשר הם נבחרו. (I2181c)
  • מעכשיו VelocityTracker יוכל לתקן את הבעיה להוספת נקודות כברירת מחדל. אם יש בעיות, עדיין אפשר להשבית את התיקון על ידי הגדרת הערך של VelocityTrackerAddPointsFix כ-False. (Ib3877, b/269487059)
  • תוקנה חוסר תאימות בינארית לאחור ב-TextStyle וב-ParagraphStyle. (I179f0, b/320819734)

תרומה חיצונית

  • נוסף constructor חדש של DialogProperties ללא פרמטרים ספציפיים לפלטפורמה. (I45829)
  • נוסף constructor חדש של PopupProperties ללא פרמטרים ספציפיים לפלטפורמה. (I9a038)

גרסה 1.7.0-alpha01

24 בינואר 2024

androidx.compose.ui:ui-*:1.7.0-alpha01 משוחרר. גרסה 1.7.0-alpha01 מכילה את התחייבויות אלה.

שינויים ב-API

  • הרחבנו את ClipboardManager על ידי הוספה של ClipEntry ו-ClipMetadata כדי לתמוך בתוכן שרירותי כמו תמונות.
  • הוספת API של DeviceConfigurationOverride ל-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 בלי לנתק את הצומת. עליך להגן על כך ב'כלי לבדיקת פריסה' (If693)

תיקוני באגים

  • עכשיו PlatformImeOptions הוא מחלקה קונקרטית במקום ממשק. (If40a4)
  • תוקנו הרכבים מחדש נוספים ב-downstream שנגרמו על ידי 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 המקבל באופן מפורש, וכולל lambda להצטרפות לסשן גרירה ושחרור. עכשיו יש שתי פעולות המקוריות לDragAndDropModifierNode. אחד לקבלת העברות ואחד להעברת נתונים (I69481)
  • maximumFlingVelocity עודכן כך שמיוצג כ-Float. המסמכים עודכנו כדי להיות ברורים יותר על האחדות maximumFlingVelocity. (I8adc7)
  • השם של onDragAndDropStart במפעל DragAndDropModifierNode השתנה ל-acceptDragAndDropTransfer.acceptsDragAndDropTransfer נוסף למאפיין dragAndDropTarget כדי לאשר מסשן של גרירה ושחרור. lambda זו מחזירה DragAndDropTarget מעשי אם מתעניינים בסשן של גרירה ושחרור. פונקציות lambda אחרות לעיבוד אירועי גרירה הוחלפו בכלי הזה. פונקציה זו של היצרן DragAndDropTarget נוספה לקבלה מהפעלות גרירה ושחרור (Iebf3a)
  • הסרת DragAndDropInfo מסוג DragAndDropModifierNode.drag שניתן להוסיף עכשיו פרמטרים ל-transferData, גודל קישוט ועיטור גרירה DrawScope lambda

    ל-DragAndDropTarget יש שיטות לאירועי גרירה ושחרור ספציפיים במקום להיות שיטה מופשטת אחת

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

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

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

תיקוני באגים

  • אם אין התמקדות בכלי לעריכת טקסט, SoftwareKeyboardController.show() לא יציג יותר את מקלדת התוכנה. (I2165a, b/301477279)
  • המערכת תתעלם מאירועים של מקשי חומרה למפתחות שלא קיבלו אירוע Down באותה תצוגת כתיבה. (Ib37b4, b/305518328)
  • הוספת תמיכה בכלי לרינדור עבור Sweep Gradient ב-ArcLine. (I4d5b)
  • הטמעה של השווה ו-hashcode עבור PageSize.Fixed. (Ie3ede, b/300134276)
  • פתרון של בעיית תאימות בינארית עם שינוי Inset של חלון (Iee695)
  • הסרת שכבת הליבה של החומר עבור צ'יפ/לחצן של Material3, כי המיקרו-בנצ'מרקים מראים ביצועים טובים יותר בלעדיה. (I55555)
  • TestDispatcher שניות שמועברות כבדיקות של effectContext לכתיבה ישמשו עכשיו ליצירת השעונים לבדיקה ולפריימים. (Ia7178)

גרסה 1.6.0-alpha08

18 באוקטובר 2023

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

שינויים ב-API

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

תיקוני באגים

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

גרסה 1.6.0-alpha07

4 באוקטובר 2023

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

שינויים ב-API

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

תיקוני באגים

  • ניתוח נתונים של וקטור XML שעבר אופטימיזציה. (Ib015)

גרסה 1.6.0-alpha06

20 בספטמבר 2023

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

שינויים ב-API

  • אופטימיזציות נוספות לסמלים של Material. (I3e08d)
  • מאפשר לעבור בין עץ הצירוף למעלה/למטה כדי למצוא צמתים דומים. (I2d234)
  • נוספה קריאה חוזרת של 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)
  • ה-API של ui-tooling המכשירים עודכן כך שיכלול מכשירים חדשים יותר (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)
  • ה-API של ColorFilter עודכן ועכשיו הוא כולל סוגים קונקרטיים של מחלקות משנה, כדי לשפר את יכולת הבדיקה של הפרמטרים. (I5fe29)
  • הצגת ספריית wear-tooling-preview של רשימת המכשירים ללבוש תקינים שאפשר להשתמש בהם בתצוגה מקדימה בממשק המשתמש (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)
  • יישום מורחב של טענות נכונות (assertions) גלובליות בבדיקת ממשק משתמש. (I1f90d)

גרסה 1.6.0-alpha02

26 ביולי 2023

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

שינויים ב-API

  • נוסף ממשק לאיתור שירותים (service locator) שאפשר להטמיע על ידי מפיצי הרכבים, אשר מאפשר הטמעה של יצירה שנותנת סמכויות לחיפושים אחרים של שירות בעל גישה להרכבה ליצירה המקורית. אין לקרוא לכך את הפקודה Directy, והיא משמשת כדי לאפשר יצירת ממשקי API ניסיוניים בזמן הריצה, שניתן למצוא בגרסאות מכווץות של ה-Composer, כמו מודול של ממשק המשתמש. (I296b9)
  • ממשק ה-API של PlatformTextInput* השתנה לגמרי. (I6c93a, b/274661182, b/267235947, b/277380808)
  • התכונות SoftwareKeyboardController ו-LocalSoftwareKeyboardController כבר לא ניסיוניות. LocalSoftwareKeyboardController הוא גם CompositionLocal עכשיו כמו שצריך. (I4c364)
  • LookaheadLayout ו-LookaheadLayoutScope הוצאו משימוש בכמה גרסאות, ועכשיו הם הוסרו. ממשקי ה-API החלופיים הם LookaheadScope שיכולים לפעול עם כל פריסה. (I12ac3)
  • הוספנו את SemanticsNodeInteraction.requestFocus כדרך נוחה יותר וגלויה יותר לבקשת התמקדות בבדיקות. (Ie8722)
  • הוספת ממשקי API ניסיוניים לרישום טענות נכוֹנוּת (assertions) גלובליות, לשימוש של frameworks בעתיד. (I12d77)

תיקוני באגים

  • ההפעלה הראשונה של הקריאה החוזרת (callback) של AndroidView מסוג update תידחה עכשיו עד שהתצוגה תצורף, במקום לפעול כשהמערכת תחיל את הקומפוזיציה שמציגה את AndroidView. הפעולה הזו פותרת באג שבמסגרתו הקריאה החוזרת של update לא תבוטל אם מדינה שהיא נקראה תשתנה באופן מיידי באמצעות השפעה. (Ie9438, b/291094055)

גרסה 1.6.0-alpha01

21 ביוני 2023

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

תכונות חדשות

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

שינוי בהתנהגות: כולל FontPVolume מוגדר עכשיו כ-FALSE כברירת מחדל בכתיבה

מעכשיו, includeFontPadding מוגדר כ-FALSE כברירת מחדל (21d806) בקטע 'כתיבה'.

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

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

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

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

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

אפשר להביע הסכמה לשימוש ב-includeFontPadding עבור כל הטקסטים שלך על ידי הגדרת הסגנונות השונים של Material. הערה: שמות הפרמטרים ישתנו בין M2 ל-M3.

val Typography = Typography(
   body1 = TextStyle(
       fontFamily =    /* … */,
       fontSize =    /* … */,
       platformStyle = PlatformTextStyle(
           includeFontPadding = false
       )
   /* … */
   )
)

MaterialTheme(
   typography = Typography,
   /* … */
)

מידע נוסף על 'כתיבה' includeFontPadding זמין בתיעוד למפתחים ובפוסט הזה בבלוג.

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

שינויים ב-API

  • תמיכה ב-InputConnection#requestCursorUpdates (I0c69b)
  • נוספו FocusRequester.saveFocusedChild ו-FocusRequester.restoreFocusedChild (Ic557e, b/272302679, b/275157318)
  • צריך להוסיף סוג ResourceResolutionException לאריזה של פריטים שנזרקים לאריזה כשמנסים לטעון נכסי מפת סיביות (bitmap) עם תיאור של נתיב הנכס שלא נטען. (I19f44, b/230166331, b/278424788)
  • נגישות אופטימלית לביצועים ולהקצאות זיכרון. (Iede48)
  • נוספו מאפייני סמנטיקה ופעולות לתמיכה בתרגום טקסט. (I4a6bc)
  • נכס חדש ב-IntrinsincMeasureScope וההטמעות שלו (למשל, MeasureScope) כדי לציין אם מעבר המדידה הנוכחי הוא מעבר במבט-על. (I7a812)
  • ה-API של DrawScope עודכן כדי להציג את היכולת לטרגט מחדש את הרינדור באזור עריכה שונה עם צפיפות/פריסה חלופית וגודל חלופי.
  • בוצע עדכון של DrawContext כדי לתמוך בתצורה של הצפיפות ובכיוון הפריסה, וכן כדי להפוך את אזור העריכה להגדרה של אזור העריכה. (Ie1f9b, b/225408150)
  • הוספת את Paragraph#fillBoundingBoxes כדי לחשב תיבות תוחמות תווים. (If30ee)
  • נוספה קבוצה של MultiPreviews נפוץ (Ia5a27)

תיקוני באגים

  • נוסף ממשק FocusTargetModifierNode שניתן להשתמש בו כדי ליצור FocusTarget בהתאמה אישית. (I9790e)
  • שינית את השם של הפרמטרים fallback* ב-constructor של TextMeasurer ל-default*. (I940a5)
  • השם של SemanticsPropertyReceiver.performImeAction השתנה ל-onImeAction. השם של SemanticsActions.PerformImeAction השתנה ל-OnImeAction. (I8e841)
  • הוספת גלגל כדי להבדיל בין גלילה בעכבר לבין גרירה בגלילה בתוך גלילה (ספציפית, ב-NestedScrollConnection). (Ie57e4)
  • נוסף API של asComposePaint כדי להחליף את toComposePaint כי האובייקט שהוחזר כולל את ערך android.graphics.Paint המקורי (I22b4c)
  • מוציאים את SemanticsProperties.imeAction משימוש ומחליפים אותו בפרמטר חדש ל-SemanticsActions.performImeAction. (I4a587)
  • נוספה תמיכה בבחירה באמצעות העכבר. בחירה מבוססת מגע תתרחב במילים ותתכווץ לפי תו. (Ic0c6c, b/180639271)
  • שיטות 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 שניתן להשתמש בו כדי ליצור מיקוד מותאם אישית. (Ifb1d6)
  • תוקנה בעיה בתכנים קומפוזביליים של תיבות דו-שיח וחלונות קופצים שעלולה לגרום לכך ששינוי הגודל של חלון הצאצא לא ישתנה כאשר usePlatformDefaultWidth=true. (I112ee)

גרסה 1.5.0-beta02

7 ביוני 2023

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

שינויים ב-API

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

תיקוני באגים

  • נוסף 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, מספר ממשי (float) המשמש לסידור מחדש של צמתים במעבר של TalkBack (ערכים נמוכים יותר מופיעים לפני). (I9a81b, b/186443263)
  • שינוי השם של הנכס הסמנטי isContainer ל-isTraversalGroup (I121f6)
  • ב-ColorProducer יש עכשיו operator fun invoke במקום produce (I4a9a2)
  • הוספת Path טרנספורמציה API כדי להחיל טרנספורמציות של תרגום/קנה מידה/רוטציה על אובייקטים של נתיב. (I23434, b/233772232)
  • השיטה של ColorProducer נקראת produce. (I78bde)
  • שינוי השם של toFrameworkColorSpace ל-toAndroidColorSpace (I4f547)
  • שינוי השם של ColorLambda לשם ColorProducer. (I73b1a)
  • הצגת ממשקי API להמרה בין סוגי מרחב הצבעים של Android ו'פיתוח נייטיב'. (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)
  • ה-constructor של LineHeightStyle.Alignment(topRatio) מקודם ל-API יציב. (I79c32, b/261565383)
  • TextMeasurer וממשקי ה-API הקשורים אליו כבר לא ניסיוניים. (I74647, b/261581753)
  • נוספה פעולת הסמנטיקה PerformImeAction כדי להפעיל את הפעולה IME בצמתים של עורך טקסט. (Ic606f, b/269633506)
  • ממשקי ה-API של PlatformTextInput כבר לא ניסיוניים ל-Android. (I668eb)
  • שם הפרמטר של הערך Enum.valueOf השתנה (Ia9b89)
  • מספר חריגים נוספים מ-enum valueOf (I818fe)
  • הוספת API חדש ברמה נמוכה של PlatformTextInputAdapter לפיתוח הטמעות של קלט טקסט בהתאמה אישית שעוסקות ישירות בממשקי API של הפלטפורמה. (I58df4)
  • הפרמטר BlendMode נוסף לשיטות DrawScope.drawText, Paragraph.paint ו-MultiParagraph.paint כדי לתמוך באלגוריתמים שונים של מיזוג בעת ציור טקסט על קנבס. (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)
  • הוסרו הקצאות בזמן שרטוט קווים ונקודות באמצעות לוח הציור (I9f535)
  • הוספת מסמכים עבור AndroidFont.fontVariationSettings (I7d9e2)

תרומה חיצונית

  • ביצועים משופרים וצמצום הקצאות ההקצאות ב-Vector APIs (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)
  • ה-API של Compose Path עודכן כדי לתמוך בפעולות הרצה אחורה כדי לתמוך בתרחישים לדוגמה של מניפולציה תכופה של נתיב עם שימוש חוזר מהיר יותר. (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 מפורש. בלוק המדידה ב-mediateLayout הוא חלק מ-IntermediateMeasureScope כמקלט, שמספק יתרונות מרכזיים של CoroutineScope, LookaheadScope ו-MeasureScope.(Ibe2e5)
  • LookaheadLayout הוחלפה ב-LookaheadScope, שלא מוגדר יותר כ'פריסה'. כך ניתן לשלוט ישירות בתוכן של Chat ב-LookaheadScope בעזרת MeasurePolicy של ההורה. (Ibe2e5)
  • הוספה של Modifier.Node#coroutineScope כדי לאפשר ל-Modifier.Nodes להפעיל קורוטינים. (I76ef9)
  • יש לתת ל-Modifier.Nodes לקרוא את CompositionLocals על ידי הטמעת הממשק של CompositionLocalConsumerModifierNode. (Ib44df)
  • הפצת מחלקה @מתחילים מהנכס לנכס. (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)
  • תוקנה רגרסיה שבה המקלדת לא הוצגה עבור שדות טקסט בתיבות דו-שיח שלא נוצרו על ידי התוכן הקומפוזבילי 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.
  • נוסף בנכס סמנטיקה IsContainer ב'פלטפורמות'. המאפיין הזה ישמש בשינוי מאוחר יותר שיקבע את סדר המעבר על סמך המשמעות הסמנטית של אלמנטים כמו פלטפורמות. I63379
  • נוסף תפקיד נגישות חדש DropdownList. אפשר להשתמש בתכונה הזו כדי לשכפל את ההתנהגות של TalkBack כשמתמקדים ב-android.widget.Spinner. (I177e5, b/236159001)
  • עכשיו אפשר להשתמש ב-PlatformTextStyle(emojiSupportMatch) כדי להשבית את עיבוד התמיכה באמוג'י בפסקה אחת. (Ia7100, b/139326806)
  • בדיקות של ממשק המשתמש של Android לכתיבה ירוצו עכשיו אישורי פריסה לכל פריים כשמריצים פריימים לצורך מעבר למצב 'לא פעיל' (למשל, דרך 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. כך אפשר לעשות שימוש חוזר במופעים של תצוגה מפורטת כשהם מוחקים את הצומת שלהם מהיצירה ועושים בו שימוש חוזר באופן תואם. האפשרות הזו שימושית במיוחד ל-LazyRows ול-LazyColumns מהצפיות. (I3f10d, b/230099236)
  • הוספת API חדש ברמה נמוכה של PlatformTextInputAdapter לפיתוח הטמעות של קלט טקסט בהתאמה אישית שעוסקות ישירות בממשקי API של הפלטפורמה. (I58df4)

תיקוני באגים

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

  • ה-API של modifierElementOf() הוסר. במקום זאת, יש לעבור מ-ModifierNodeElement ישירות. (I2256b)
  • נוספה קריאה חוזרת של Modifier.Node.onReset() שמאפשרת לאפס מצב מקומי מסוים כדי לטפל כראוי בפנייה כשנעשה שימוש חוזר ב-Layout (לדוגמה, כפריט של LazyColumn). בוצע תיקון ב-FocusTargetModifierNode כדי לאפס כראוי את מצב המיקוד. (I65495, b/265201972)
  • הפרמטר BlendMode נוסף לשיטות DrawScope.drawText, Paragraph.paint ו-MultiParagraph.paint כדי לתמוך באלגוריתמים שונים של מיזוג בעת ציור טקסט על קנבס. (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, ועכשיו ה-API של waitUntil הורחב כך שיקבל כל התאמה וכל ספירת צמתים. מידע נוסף זמין בכתובת 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)
  • מסירים הערה ניסיונית מה-constructor של DialogProperties שמקבל פרמטר usePlatformDefaultWidth. (Ic4048)
  • נוספה פונקציה למיקום החישוב ולטנגנס במרחק בנתיב – עם PathMeasure.getPosition() ו-PathMeasure.getTangent() (I3b47c)
  • הוסר בטעות הגדרה ציבורית שנחשפה ב-PlatformParagraphStyle. (I07f47)
  • עוד סוג/יכולת null של פונקציות inline/הוצא משימוש (I24f91)
  • הוספת AnnotatedString.hasStringAnnotations לשאילתה על הערות עם אפס הקצאות. (I94dfe, b/246960758)
  • נוסף עומס יתר חדש עבור הפונקציה TextMeasurer.measure שמקבל את הפונקציה String כטקסט. (I47b2d, b/242705342)
  • ממשקי ה-API של LineBreak ו-Hyphens ב-TextStyle עברו שדרוג ליציב. (Ic1e1d)

תרומה חיצונית

  • השיטות 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.
  • נוסף בנכס סמנטיקה IsContainer ב'פלטפורמות'. המאפיין הזה ישמש בשינוי מאוחר יותר שיקבע את סדר המעבר על סמך המשמעות הסמנטית של אלמנטים כמו פלטפורמות. I63379
  • נוסף תפקיד נגישות חדש DropdownList. אפשר להשתמש בפונקציה הזו כדי לשכפל התנהגות של TalkBack's כשמתמקדים ב-android.widget.Spinner. (I177e5, b/236159001)
  • עכשיו אפשר להשתמש ב-PlatformTextStyle(emojiSupportMatch) כדי להשבית את עיבוד התמיכה באמוג'י בפסקה אחת. (Ia7100, b/139326806)
  • בדיקות של ממשק המשתמש של Android לכתיבה ירוצו עכשיו אישורי פריסה לכל פריים כשמריצים פריימים לצורך מעבר למצב 'לא פעיל' (למשל, דרך waitForIdle). הדבר עלול להשפיע על בדיקות שמצהירות על פריימים בודדים של אנימציית פריסה. (I8ea08, b/222093277)
  • הניסוי הניסיוני TextMotion נוסף אל TextStyle כדי להגדיר את הטקסט כ'Static(default)' או כ'אנימציה'. אם רוצים לשנות את גודל הטקסט, לתרגם או לסובב אותו באמצעות אנימציה, יש להשתמש ב-TextMotion.Animated. (I24dd7)

שינויים ב-API

  • הארגומנט maxSize: IntSize ב-drawText הוחלף בארגומנט size: Size כדי לחפוף לפונקציות DrawScope אחרות. כברירת מחדל, size מוגדר לערך Size.Unspecified, ולכן התנהגות ברירת המחדל הקודמת לא אמורה לשנות. (Icd27d)
  • הוסר בנאי הגופנים הניסיוני שהוצא משימוש. (I8a724, b/261435386)
  • סיווג הנתונים של ממשק המשתמש Group כולל עכשיו את השדה isInline, שמציין אם הקבוצה מיועדת לקריאה לפונקציה קומפוזבילית מוטבעת. אם הערך של isInline הוא true, הקריאה היא לפונקציה קומפוזבילית מוטבעת. עם זאת, יכול להיות שהערך יהיה False בקריאות לפונקציות קומפוזביליות מוטבעות, שהן ממודולים שעברו הידור באמצעות גרסה של הפלאגין מהדר (compiler) לכתיבה, שלא יוצרת את פרטי הפונקציה המוטבעת. (Idb846)
  • העברתם כמה ממשקי API ניסיוניים בעבר לגרסה יציבה
  • Rotary Scroll Event API יציב עכשיו (I42ad3, b/261561229)
  • ה-API של FontVariation יציב עכשיו (I8779f, b/241016309)
  • כל ה-constructor של Font() הם עכשיו API יציב (I5948b, b/261435386)
  • DeviceFontFamilyName יציב עכשיו (I8b640, b/261435386)
  • ה-constructor של 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)
  • נוסף ממשק API של Modifier להרצת שאילתות על פרטי גלילה של ישויות אב. (I2ba9d, b/203141462)
  • נעשה שימוש ב-Clickable כדי לעכב באופן תקין אינטראקציות עם העיתונות, כאשר תנועות עשויות להפוך לאירועי גלילה.
  • בוצע תיקון של Clickables לעיכוב תקין של הדים בזמן שימוש בתוך Scrollable ViewGroup.
  • חלונית ההזזה ו-Sheets עודכנו כדי להשהות לחיצות בצורה נכונה במקרה שתנועות יכולות להפוך לאירועי גלילה.
  • שינינו את השם של CompositingStrategy.Always ל-Offscreen כדי לציין שהשדה graphicsLayer תמיד יעבור למאגר זמני ביניים (I47dc1)
  • יציב עכשיו (I10566, b/248294649)
  • נוספו ממשקי API ניסיוניים חדשים PerfettoTrace.record {} ו-PerfettoTraceRule כדי לתעד מעקבי Perfetto (שנקראים גם מעקבי מערכת) כחלק מבדיקה, כדי לבחון את ההתנהגות והביצועים של הבדיקה. (I3ba16)
  • בבדיקות ממשק משתמש שנעשה בהן שימוש בכלל 'כתיבה', המשיכות יופעלו מחדש במהלך withFrameNanos קריאה חוזרת (callback) רק אחרי שכל הקריאות החוזרות לפריימים יפסיקו לפעול. ההגדרה הזו תואמת להתנהגות של כתיבת הודעה בזמן הפעלה רגילה. עם זאת, בדיקות שמסתמכות על ההתנהגות הישנה עלולות להיכשל. הפעולה הזו אמורה להשפיע רק על קוד שקורא ישירות ל-withFrameNanos או withFrameMillis, ושהלוגיקה מחוץ לקריאה החוזרת מועברת לפונקציות האלה שצריך להעביר בתוך הקריאות החוזרות. לקבלת דוגמאות, אפשר לעיין בשינויים בבדיקת האנימציה ב-CL הזה.
  • הפרמטר onPerformTraversals: (Long) -> Unit האופציונלי נוסף ל-constructor ולפונקציית היצרן של TestMonotonicFrameClock כדי להריץ את הקוד אחרי התקשרות חזרה של withFrameNanos, אבל לפני המשך הפעולה של המתקשרים וקורוטינים. (Idb413, b/254115946, b/222093277, b/255802670)
  • נוסף אמוג'יcompat לכתיבה (Ibf6f9, b/139326806)
  • נוסף פרמטר חדש של טפט ל-@Preview לתמיכה בצבעים דינמיים (I9f512)

תיקוני באגים

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

עדכונים בנושא תלות

  • ממשק המשתמש של הבנייה וחומר הלימוד תלויים במחזור החיים 2.5.1. (I05ab0, b/258038814)

גרסה 1.4.0-alpha02

9 בנובמבר 2022

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

שינויים ב-API

  • GraphicsLayerScope עודכן כדי לחשוף את הגודל הנוכחי של graphicsLayer. האפשרות הזו שימושית לחישוב טרנספורמציות graphicsLayer כפונקציה של הגודל הקומפוזבילי. (If8c43,b/181387080)
  • השיטה CompositingStrategy הוצגה כדי לקבוע מתי להשתמש בשכבת הרכבה שלא מופיעה במסך לצורך רינדור של תוכן מסוג graphicsLayer. המדיניות האוטומטית שומרת על התנהגות ברירת המחדל שממנפת באופן פנימי שכבה אם נעשה שימוש באלפא או ב-RenderEffect/Overscroll. תמיד יופעל מאגר נתונים זמני שלא נמצא במסך, שבו ModulateAlpha יימנע משימוש במאגר נתונים זמני מחוץ למסך ובמקום זאת ישנה את כל אחת מהוראות השרטוט המוקלטות ב-graphicsLayer. השימוש ב-ModulateAlpha עדיין ישתמש במאגר נתונים זמני מחוץ למסך עבור שימושים ב-RenderEffect/Overscroll (I25e82, b/256382834)
  • invalidateSubtree() נוסף אל Modifier.Node כדי לאפשר ביטול תוקף של היררכיות שלמות לפריסה ושרטוט. (I4bd90)
  • קידום של rememberNestedScrollInteropConnection ליציבות. נוספה האפשרות להעביר תצוגת בסיס אל rememberNestedScrollInteropConnection. כך התצוגה המותאמת אישית תוכל להגיב בצורה טובה יותר למגבלות גלילה, במיוחד בתצוגות לא סטנדרטיות (למשל ModalBottomSheetDialog). (I9e107)
  • נוסף ממשק ObserverNode שיכול לשמש הטמעות של Modifier.Node שצריך לקבל התראה כשערך שהם קראו בעבר משתנה (I5728b, b/247716483)
  • נוסף constructor חדש ל-Paint שמקבל android.graphics.Paint מקורי. נוספה גם פונקציית תוסף toComposePaint() שממירה אובייקט מקורי קיים ל-Compose Paint. (Ica91b)
  • הוספת FontFamily.Resolver.resolveAsTypeface חדש לשימוש ב-Android. (I8950b)
  • צריך להוסיף ToolingState כדי לאפשר לכלים לשנות מצבים פנימיים של קומפוזבילי (Ie6614)
  • יצירה של כלים מחדש (I8677b) כדי לשפר את התמיכה באנימציות חדשות שנוספו
  • נוסף הפרמטר minLines ל-Material3 Text, 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 יש עכשיו שיטה append(AnnotatedString, start: Int, end: Int) כדי לצרף מחרוזת משנה של AnnotatedString והסגנונות שמצטלבים.
  • הפרמטר DrawStyle נוסף לפונקציות העיצוב Paragraph ו-MultiParagraph שמאפשרות להוסיף טקסט עם קווי שרטוט. (Ic8102, b/155421273)

תרומה חיצונית

  • תודה על vighnesh שהוספת מכשירי טלוויזיה לתצוגות המקדימות (Ie15cd)

גרסה 1.3

גרסה 1.3.3

11 בינואר 2023

androidx.compose.ui:ui-*:1.3.3 משוחרר. גרסה 1.3.3 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • תיקון קריסה שמתרחשת לפעמים ב-Android 9 כשהפעילות נשמרת באמצעות תצוגת 'כתיבה'. (I0b755, b/260322832)

גרסה 1.3.2

7 בדצמבר 2022

androidx.compose.ui:ui-*:1.3.2 משוחרר. גרסה 1.3.2 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • עודכן לשימוש ב-Profobuf 3.21.8, כך שנמנע מהתראת אבטחה ב-protobuf-javalite:3.19.4 (CVE-2022-3171) (b/255545055)

גרסה 1.3.1

9 בנובמבר 2022

androidx.compose.ui:ui-*:1.3.1 משוחרר. גרסה 1.3.1 כוללת את ההתחייבויות האלה.

גרסה 1.3.0

24 באוקטובר 2022

androidx.compose.ui:ui-*:1.3.0 משוחרר. גרסה 1.3.0 כוללת את ההתחייבויות האלה.

שינויים חשובים מאז 1.2.0

  • חבילת API ניסיונית חדשה LookaheadLayout (הפעלת התנהגויות אנימציה שהיו בלתי אפשריות בעבר)
  • חבילת API ניסיונית חדשה Modifier.Node (חלופה לביצועים גבוהים יותר ל-Modifier.composed)
  • תמיכה משופרת בהטמעת חלונות.
  • מיקוד תמיכה בלחצני החיצים (D-Pads) ובמקלדת חומרה ב-LazyLists.
  • הגובה המרבי הנתמך בתיבות דו-שיח ובחלונות קופצים הצטמצם ל-8dp (שינוי משמעותי בהתנהגות בחלק ממערכות העיצוב המותאמות אישית – הנימוק בנתוני הגרסה של בטא 01)
  • שיפורים קטנים וקלים בממשק ה-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)

תיקוני באגים

  • ה-API של BackHandler ב-AndroidX Activity פועל עכשיו בתוכן קומפוזבילי מסוג Dialog. (I35342)

גרסה 1.3.0-beta02

7 בספטמבר 2022

androidx.compose.ui:ui-*:1.3.0-beta02 משוחרר. גרסה 1.3.0-beta02 מכילה את התחייבויות אלה.

שינויים ב-API

  • נוסף עומס יתר ניסיוני ל-Layouts שמקבל רשימה של כמה lambdas של תוכן קומפוזבילי, שמאפשר להוסיף מודעות איומים למדידה בצורה שונה לתוכן lambdas שונות (Ic1b4e)

שינויים בממשקי ה-API הניסיוניים לטירגוט:

  • FocusDirection.In ו-FocusDirection.Out הוצאו משימוש והוחלפו ב-FocusDirection.Enter וב-FocusDirection.Exit. (Ia4262, b/183746982)
  • נוספו שני מאפייני מיקוד חדשים מסוג כניסה ויציאה, כדי לציין התנהגות מותאמת אישית עבור FocusManager.moveFocus(Enter) ו-FocusManager.moveFocus(Exit). (I5f3f9, b/183746982)
  • עכשיו אפשר להשתמש ב-FocusRequester.Cancel כדי לבטל העברת מיקוד. אפשר להשתמש ב-FocusRequester.Cancel בכל אחד ממאפייני המיקוד הבאים: למעלה, למטה, שמאלה, ימינה, הבא, הקודם, התחלה, סיום, כניסה ויציאה. (Ib300f)

גרסה 1.3.0-beta01

24 באוגוסט 2022

androidx.compose.ui:ui-*:1.3.0-beta01 משוחרר. גרסה 1.3.0-beta01 מכילה את התחייבויות אלה.

ארגון מחדש של צומת Modifier

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

סיכום השינויים

ממשקי ה-API הניסיוניים של Modifier.Node שנוספו, מספקים הפשטה שמאפשרת לנהל את המצב במכונה שתישמר במחזור החיים של הצומת של הפריסה, שיוקצו לכל צומת בפריסה ולכל שימוש של ה-Modifier.Element התואם שהפיק אותו.

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

סיכון

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

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

ממשקי API ניסיוניים

נוספו ממשקי API ניסיוניים שונים, כולם קשורים לקונספט החדש של "צומת Modifier". פונקציות Modifier.Node נוצרים כתוצאה מ-

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

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

שינויים ב-API

  • תוקנה בעיה שגרמה לכך ש-painterResource לא התעדכן לגבי שינויים בהגדרות האישיות (I58e73, b/228862715)
  • rememberTextMeasurer לא מקבלת יותר פרמטרים FontFamily.Resolver, Density או LayoutDirection. יש להשתמש ב-constructor של TextMeasurer כדי לספק ערכים מותאמים אישית לפרמטרים האלה. (Ia1da3)
  • נוסף נכס אחד (DialogProperties.decorFitsSystemWindows) כדי לאפשר לתיבות דו-שיח לתמוך ב-WindowInsets. (I57742, b/229378542)
  • בוני גופנים הועברו חזרה לקובץ Kotlin המקורי כדי לשמור על תאימות בינארית. אין שינוי מהגרסה היציבה האחרונה. (Ieb2f3)
  • האופרטור המיותר הוסר מכמה הגדרות של השווה – אין לכך השפעה. I6c309
  • FontVariation.Setting הוא ממשק אטום, שמאפשר צמצום עתידי של ממשקי API. (I11021, b/143703328)
  • הוספה של CompositionGroup.findParameters אל SlotTree.kt. כך כלים לאחזור פרמטרים של CompositionGroup בלי שיצטרכו לנתח את כל טבלת מיקומי המשבצות. (I124fe)

גרסה 1.3.0-alpha03

10 באוגוסט 2022

androidx.compose.ui:ui-*:1.3.0-alpha03 משוחרר. גרסה 1.3.0-alpha03 מכילה את התחייבויות אלה.

שינויים ב-API

  • LayoutCoordinates.findRootCoordinates() גלוי עכשיו (I7fa37, b/204723384)
  • נוסף API ניסיוני כדי לקבל את LayoutCoordinates בPlacementScope. כך המפתחים יכולים לדעת איפה הפריסה הנוכחית למקם את הילדים ביחס למיקום שלה. (I5482b, b/238632578)
  • נוספה LayoutCoordinates.transformFrom כדי לקבל את הטרנספורמציה של המטריצה מ-LayoutCoordinates אחד לאחר. (Ic5ab1, b/238632578)
  • הוצאנו משימוש את SemanticsModifier.id והעברנו את מזהה הסמנטיקה ל-LayoutInfo.semanticsId. (Iac808, b/203559524)
  • בגופנים של משאבים יש עכשיו תמיכה בהגדרה של וריאציות של גופן (API מגרסה 26 ואילך). (I900dd, b/143703328)
  • תמיכה בגופנים של משתנים ב-DeviceFontFamilyNameFont (Ic1279, b/143703328)
  • בוני גופנים מקבלים עכשיו רשימה של FontVariation.Setting להגדרת גופנים של משתנים במכשירי O+. (I11a9d, b/143703328)
  • הוספת API של FontVariation להגדרה ולשימוש בגופנים של משתנים. (I3c40c, b/143703328)
  • LineHeightStyle.Alignment constructor הוא עכשיו ציבורי (ניסיוני) (I4bbbe, b/235876330)
  • הפִּסקה צפויה עכשיו|בפועל ומוגדרת ל-Android ולמחשבים. (Id387e, b/239962983)
  • פסקה בממשק היא עכשיו סגירה של הממשק 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 יש עכשיו תמיכה בתחביר in של Kotlin כדי לשלוח קריאה לפונקציה contains. (Ie42b0, b/238642990)
  • צריך להסיר פונקציות מיותרות מ-KeyInjectionScope, כי אפשר להטמיע אותן בקלות באמצעות חלקים פשוטים יותר ב-API. הפונקציות שהוסרו כוללות את pressKeys, keysDown ו-keysUp. (I81d77)
  • ארגון מחדש של שמות פרמטרים וקבועים ב-KeyInjectionScope כך שיכללו את הסיומת 'Millis' כאשר היחידות של הקבועים והפרמטרים האלה הן אלפיות שנייה. (Iabef5)
  • השיטה toStringForLog() נוספה אל EditCommand כדי לעזור בפתרון בעיות בעריכת טקסט. (I53354, b/228862731)
  • נוספה פונקציית התוסף drawText ב-DrawScope כדי לספק דרך לצייר טקסט במגוון סגנונות באמצעות תכנים קומפוזביליים ומגבילים שפועלים על DrawScope כמו Canvas ו-drawBehind. (I16a62, b/190787898)
  • מציגים ממשק API ניסיוני חדש בשם TextMeasurer, שמאפשר חישוב של פריסת טקסט שרירותית שיוצר תוצאות זהות ל-BasicText, ללא קשר לזמן הריצה של כתיבת הודעה. (I17101)
  • הוספה של mapTree אל SlotTree.kt. כך כלים יכולים לבדוק את SlotTree בלי ליצור עותק בזיכרון, כמו שעושים בשבילי. עבור מפקח הפריסה, הדבר מספק שיפור בביצועים גורם 10. (I5e113)
  • התכונה 'תצוגה מקדימה של כתיבה' שונתה כך שהיא תאוחסן בקובצי פלט בינאריים, כדי לאפשר למפתחים לכתוב הערות ב-MultiPreview ולהשתמש בהן מחדש מתוך ספריות. (I85699, b/233511976)

תיקוני באגים

  • כשמוסיפים אירועי InputEventChange ל-tracker Velocity, אנחנו נתייחס עכשיו לערך דלתא במקום מיקומים, כדי להבטיח שהמהירות תחושב נכון בכל המקרים, גם אם רכיב היעד זז (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)
  • אפשר להוסיף פרמטר אלפא אופציונלי לטעם המברשת של TextStyle ו-SpanStyle כדי לשנות את השקיפות של כל Text. (Ic2fac, b/234117635)
  • הוספנו את סוג ההערה UrlAnnotation ואת השיטות המשויכות לתמיכה בתמיכה בקישור TalkBack ב-AnnotatedString. (I1c754, b/231495122)
  • העברת פונקציונליות של כלי שירות לסביבת זמן ריצה (I4f729)

תיקוני באגים

תרומה חיצונית

  • נוסף 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)
  • תוקן חריג של הפעלת Cast של הכיתה במהלך לזכור בכלי הבדיקה (b/235526153)

גרסה 1.2.0

27 ביולי 2022

androidx.compose.ui:ui-*:1.2.0 משוחרר. גרסה 1.2.0 כוללת את ההתחייבויות האלה.

שינויים חשובים מאז 1.1.0

  • שיפורים במעבר מיקוד:

    • עכשיו פועלת גלילה ממוקדת-מיקוד ברשימות עצלות, באמצעות ליבה ה-API החדש של BeyondBoundsLayout
    • ממשקי 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

  • ממשקים בספריות הרכבה נוצרים עכשיו באמצעות שיטות ברירת מחדל של jdk8 (I5bcf1)
  • נוספו פונקציות בסדר גבוה יותר ל-KeyInjectionScope להחדרת לחיצות על מקשים, בזמן שמקשים אחרים נמצאים לחוצים או מופעלים. הפונקציות האלה כוללות את withKeysDown, withKeysToggled וכו'. נוספו גם מאפיינים לבדיקה אם מטא-מפתח מסוים מושבת, לדוגמה, isCtrlDown כדי לבדוק אם אחד ממקשי הבקרה מבוטל. ב-KeyInjectionScope אפשר למצוא משאבי עזרה לגבי כל פונקציה. (I9f6cd, b/229831515)
  • הוספנו OverscrollEffect ניסיוני כדי לאפשר אפקטים מותאמים אישית של גלילת יתר, לצד עומסי-היתר של Modifier.scrollable שמקבלים אותו.
  • LocalOverScrollConfiguration הניסיוני הועבר מ-foundation.gesture לחבילת היסודות ושמו השתנה ל-LocalOverscrollConfiguration (If19fb, b/204650733)
  • שינוי השם של runComposeUiTestWithoutActivity {} ל-runEmptyComposeUiTest {}, כדי להתאים אותו ל-createEmptyComposeRule() (I6ified7)

גרסה 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)
  • פישוט של ה-API של rememberNestedScrollConnection כדי להשתמש בלוקאלים של הרכבה כדי לקבל את פרטי התצוגה הנוכחית (I67ca7)
  • עכשיו אפשר להשתמש בהערות ובהערות @ComposableTarget שמסומנות על ידי @ComposableTargetMarker בהיקף הקובץ באמצעות הקידומת @file. אם תשתמשו בהערת יעד בהיקף הקובץ, המהדר צריך להניח שכל הפונקציות הקומפוזביליות בקובץ נועדו לטרגט למיישם המשויך. לדוגמה, שימוש ב-@file:UiComposable מצהיר על כך שכל הפונקציות של @Composable מטרגטות לאפליקציה של ממשק המשתמש של 'כתיבה'. פונקציה שצריך לטרגט אליה מערכת הפעלה אחרת חייבת לספק באופן מפורש את ההערה של סמן היעד עבור הכלי הרצוי. (I40804)
  • הושק ממשק API ניסיוני, חדש לפלטפורמה עצמאית לבדיקה: interface ComposeUiTest ו-fun runComposeUiTest(block: ComposeUiTest.() -> Unit), שיכולים לשמש להרצת בדיקות של ממשק פיתוח לכתיבה ללא צורך ב-TestRule. כדי להריץ בדיקה בלי ComposeTestRule, עוברים את הבדיקה כמו lambda לrunComposeUiTest ומשתמשים השיטות והחברים בהיקף המקבל ComposeUiTest, שהם זהים לאלו של ComposeContentTestRule.

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

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

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

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

    אל:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @Test
        @OptIn(ExperimentalTestApi::class)
        fun test() = runComposeUiTest {
            setContent {
                Text("Hello Compose!")
            }
            onNodeWithText("Hello Compose!").assertExists()
        }
    }
    
  • בשלב זה, ComposeContentTestRule ו-ComposeTestRule לא פועלים בטווח ComposeUiTest. לכן, לא ניתן עדיין לקרוא לפונקציות של תוספים ב-ComposeUiTest בממשק של TestRule. לאחר השדרוג של ComposeUiTest ל-API יציב, הערך של ComposeContentTestRule ו-ComposeTestRule ישתנה מ-ComposeUiTest. (Ib4e90)

  • השם של LineHeightBehavior השתנה ל-LineHeightStyle

  • השם של LineVerticalAlignment השתנה ל-LineHeightStyle.Alignment

  • משנה את השם של LineHeightTrim ל-LineHeightStyle.Trim

  • ערכי ברירת המחדל של בנאי מ-LineHeightStyle הוסרו (I582bf, b/181155707)

  • הוספנו את Brush אל TextStyle ואל SpanStyle כדי לספק דרך לשרטט טקסט עם צבעים הדרגתיים. (I53869, b/187839528)

  • trimFirstLineTop, trimLastLineBottom מאפיינים של הערך של LineHeightBehavior השתנה ל-enum אחד: LineHeightTrim. ל-LineHeightTrim יש ערכים של 4 מצבים המוגדרים על ידי שני בוליאניים: FirstLineTop, LastLineBottom, שניהם ואף אחד (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)

תרומה חיצונית

  • אם גוללים אנכיים ב-Android, הערך של MouseInjectionScope.scroll(delta = 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)
  • פיסקה ו-MultiParagraph מקבלים עכשיו את הפרמטר Constraints. העברת Constraints.maxHeight היא פעולה חסרת תקדים כרגע, אבל היא תאפשר לבצע חישובים מסוימים בעתיד, כמו אליפסה על סמך הגובה. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() מקבל עכשיו מחלקה מותאמת אישית כמו MutableSet, שלא מאפשרת להוסיף בה פריטים חדשים. (Icd314)
  • PointerIcon הוא עכשיו ממשק @Stable (I9dafe)
  • האפשרות 'צריכה חלקית (מיקום למטה' או 'מיקום נמוך') הוצאה משימוש ב-PointerInputChange. אפשר להשתמש ב-consume() כדי לקבל את השינוי באופן מלא. אפשר להשתמש ב-isConsumed כדי לבדוק אם מישהו אחר ביצע את השינוי בעבר.
  • מעכשיו, PointerInputChange::copy() תמיד יוצר עותק שטחי שימוש. פירוש הדבר הוא שעותקים של PointerInputChange ייצרוך לאחר מימוש אחד מהעותקים. כדי ליצור PointerInputChange ללא גבולות, צריך להשתמש ב-constructor. (Ie6be4, b/225669674)
  • הפעלת האפשרות 'גלילה הדדית' בין 'כתיבה' לבין 'הצגה' בכיוון 'כתיבה' > צפייה. פירוש הדבר הוא שהורה של הכתיבה יוכל לקבל דלתא של גלילה בתוך תצוגת גלילה בתוך תצוגת גלילה. (If7949, b/174348612)
  • SemanticsProperty testTagsAsResourceId חדש, שניתן להשתמש בו כדי להפוך את 'פיתוח נייטיב' לתאימות לבדיקות UIAutomator שמיועדים למערכת התצוגה המפורטת. (I39c20)
  • הצגת כל המשקלים הזמינים לגופנים במערכות ב-Android כשמשתמשים ב-FontFamily.SansSerif. הפעולה הזו תשתמש בשמות של גופנים חלופיים כמו Sans Serif-medium באופן פנימי ב-API 21-28. זהו שינוי בהתנהגות, מכיוון שבעבר משקללים 400 ו-700 נתמכים ב-API 21-28 בלבד. (I380fe, b/156048036, b/226441992)
  • מורים לפי פסקאות ומספר פסקאות סידרו מחדש ארגומנטים תלויי מיקום לפני הארגומנטים האופציונליים. (אידפאה)
  • AndroidFont משתמש עכשיו ב-typefaceLoader כפרמטר של constructor. (I2c971)

גרסה 1.2.0-alpha07

6 באפריל 2022

androidx.compose.ui:ui-*:1.2.0-alpha07 משוחרר. גרסה 1.2.0-alpha07 מכילה את התחייבויות אלה.

שינויים ב-API

  • נוספה הפונקציה החדשה Snapshot.withoutReadObservation { ... }. היא מאפשרת למשתמשים להריץ את lambda שמועברת בלי להירשם לשינויים בערכי המדינה שנקראים במהלך החסימה. הוא יכול להיות שימושי במקרים שבהם אתם רוצים להפיק תועלת מכתיבה/קריאה בטוחה של שרשורים על סמך תמונת המצב, אבל אתם רוצים לקרוא את הערך בלי לגרום להתחשבות או למדידה מחדש ללא צורך. (I9f365, b/214054486)
  • מאפיין התוסף consumeWindowInsets של ComposeView מאפשר למפתחים להשבית את השימוש ב-Android WindowInsets. כך אפשר להפריד בין ComposeViews בהיררכיה לכל אפליקציה של WindowInsets, בלי להפריע זה לזה. (I0ef08, b/220943142)
  • נוספה KeyboardType.Decimal כחלופה ל-Keyboard.Number כדי לכלול באופן ספציפי מפריד עשרוני ב-IME. (Iec4c8, b/209835363)
  • PointerEventType.Scroll ו-PointerEvent.scrollDelta הם ממשקי API יציבים עכשיו (I574c5, b/225669674)
  • הפעלת Nested Scroll בין 'תצוגה' ו'כתיבה' לשיתוף פעולה במחלקות 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)

תיקוני באגים

  • נוספה בדיקת מוך לחומר/גג כדי לוודא שנעשה שימוש במרווח הפנימי הפנימי (Ifb111)

גרסה 1.2.0-alpha06

23 במרץ, 2022

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

שינויים ב-API

  • נוספה פעולה סמנטיקה של RequestFocus כדי לבקש התמקדות ביעד שניתן להתמקד בו. (I17b71)
  • ניתוח מעודכן של פריטים וקטוריים שניתנים להזזה כדי לתמוך בשיקוף אוטומטי כדי להפוך את התוכן של VectorPainter אם הפריסה הנוכחית הכיוון הוא RTL. (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 אם מדובר בתצוגות של רעיונות לילדים.

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

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

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

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

תיקוני באגים

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

תרומה חיצונית

  • Write-ui: הוספת מאפייני ambientShadowColor ו-spotShadowColor ל-GraphicsLayerScope (I1ba1a, b/160665122)
  • משאבים רבים נתמכים עכשיו באמצעות הפונקציות pluralStringResource. (Ib2f23, b/191375123)

גרסה 1.2.0-alpha05

9 במרץ 2022

androidx.compose.ui:ui-*:1.2.0-alpha05 משוחרר. גרסה 1.2.0-alpha05 מכילה את התחייבויות אלה.

שינויים ב-API

  • עכשיו הפונקציה TextToolbar מתייחסת לארגומנטים מסוג lambda במקום ActionCallback. (Ib2eb9, b/197950089)
  • תכונת ה-null עודכנה בליבת ותאימות האפליקציה כדי להתאים ל-Tiramisu DP2 (I0cbb7)
  • הממשק המדידה חושף עכשיו את נכס הורה (I3313f)
  • Modifier.onPlaced והממשק OnPlacedModifier הם יציבות. (Ib5482)
  • הידד! האפשרות 'כתיבה' תומכת עכשיו באנימציה 'סולם משך אנימטור' בהגדרה 'אפשרויות למפתחים'. (I5a4fc, b/161675988)
  • נוסף מגביל BeyondBoundsLayout מקומי (If8b51, b/184670295)
  • טקסט: האפשרות IncludeFontPating (כולל גופנים) מושבתת עכשיו כברירת מחדל. בעיות בחיתוך כתוצאה מ-includeFontPadding=false מטופלות ושום חיתוך לא אמור להתרחש בסקריפטים ארוכים. (I31c84, b/171394808)

תיקוני באגים

  • ComposeContentTestRule.setContent יקפיץ/ה עכשיו IllegalStateException אם ניסית להגדיר תוכן כשכבר יש תוכן. (I888a5, b/199631334)
  • תיקון הקריסה שנגרמה בגלל תוכן שבלוח העריכה במהלך קריאה מ לוח העריכה ב-Android. (I06020, b/197769306)
  • שיפור דוגמאות הגלילה של RSB. (I6a596)

תרומה חיצונית

  • עודכן לשימוש ב-Kotlinx coroutines 1.6.0 (I3366d)

גרסה 1.2.0-alpha04

23 בפברואר 2022

androidx.compose.ui:ui-*:1.2.0-alpha04 משוחרר. גרסה 1.2.0-alpha04 מכילה את התחייבויות אלה.

שינויים ב-API

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

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

    לאפליקציות קומפוזביליות בהתאמה אישית, פונקציה זו מפעילה את הפונקציות הקומפוזביליות ComposeNode או ReusableComposeNode צריכים להוסיף הערת ComposableTarget לפונקציה ולכל הערה אחרת סוגי פרמטרים קומפוזביליים של lambda. עם זאת, מומלץ כדי ליצור הערה שנוספה ComposableTargetMarker ולאחר מכן ייעשה שימוש בהערה המסומנת במקום ComposableTarget ישירות. הערה קומפוזבילית שמסומן ב-ComposableTargetMarker שווה ערך ל- ComposbleTarget בשם המוגדר במלואו של המאפיין class בתור הפרמטר applier. לדוגמה לשימוש ComposableTargetMarker: anroidx.compose.ui.UiComposable. (I38f11)

  • Font(resId, ...) משתמש עכשיו ב-LoadStrategy ב-API יציב. (Ief3d2)

  • FontLoadingStrategy הוא עכשיו API יציב. (I1ee35, b/174162090)

  • תמיכה בטעינת גופנים אסינכרוניים ב-Text (I77057, b/214587005)

  • הוספת ברידג' API כדי להמיר Font.ResourceLoader בהתאמה אישית ל-FontFamily.Resolver. (Ia0060)

תיקוני באגים

  • FontFamily.Resolver שסופקו מועברות להרכבות משנה כמו 'חלון קופץ'.
  • Font.ResourceLoader שסופקו מועברות להרכבות משנה כמו 'חלון קופץ'. (I48fa5)

גרסה 1.2.0-alpha03

9 בפברואר 2022

androidx.compose.ui:ui-*:1.2.0-alpha03 משוחרר. גרסה 1.2.0-alpha03 מכילה את התחייבויות אלה.

שינויים ב-API

  • notifyFocusedRect methods ב-TextInputSession ו- TextInputService הוצאו משימוש ולא ייקראו אליהם. כדאי להשתמש יש גם אפשרות BringIntoViewRequester. (Ia4302, b/192043120, b/216842427, b/178211874)
  • תאריך השקה: destroyDisplayListData method ב-RenderNode class stub (I1e659, b/216660268)
  • נוסף API חדש שמאפשר למדוד מראש ילדים של SubcomposeLayout שיצרת מראש. (I857ea)
  • נוספה movableContentOf שממירה תוכן קומפוזבילי lambda ל-lambda שמעבירה את המצב, ואת הצמתים התואמים, לכל מיקום חדש ששמו נקרא. מתי השיחה הקודמת עוזבת ההרכב, המצב נשמר באופן זמני ואם מתבצעת קריאה חדשה ללמבדה נכנס ליצירה ואז למדינה, צמתים יועברו למיקום של הקריאה החדשה. אם לא התקבלה שיחה חדשה שהמדינה תוסר באופן סופי, וחשוב לזכור שהצופים נשלחה הודעה.

    אם lambda מסוג movableContentOf נקרא כמה פעמים במצב אחד, נוצרים מצב חדש וצמתים חדשים לכל קריאה, וכמו כן, כשהשיחות מתחילות את היצירה, והשיחות החדשות נכנסות, המצב מועבר מהשיחות הראשונות ועד לשיחות שנכנסות, לפי הסדר נקראים. כל המדינות שלא נתבעו עליהן בעלות על ידי שיחות חדשות יוסרו באופן קבוע. (Ib4850)

  • השירות FontFamilyResolver זמין עכשיו דרך LocalFontFamilyResolver.current

  • הוספת את createFontFamilyResolver(context) ואת createFontFamilyResolver(context, coroutineScope) כדי ליצור חדש מקודדי FontFamily מחוץ לשימוש בכתיבה.

  • הפסקאות והסעיפים הקודמים יהיו עכשיו FontFamily.Resolver

  • TextLayoutResult.layoutInput.fontFamilyResolver מכיל עכשיו המקודד שמשמש לפריסה הזו, הוצא משימוש TextLayoutResult.layoutInput.resourceLoader כי כבר לא נעשה בו שימוש. (Id5a45, b/174162090)

  • תמיכה בטעינת גופנים אסינכרונית ואופציונלית, עם גיבוי או התנהגות המשתמשים. הנתיב הזה משמש ב-Text ו-TextField, והוא גלוי דרך FontFamilyresolver

  • תמיכה בטעינה מראש של גופנים דרך FontFamilyResolver.preload

  • ב-FontFamilyResolver.setAsyncLoadContext אפשר להגדיר הקשר קורוטין גלובלי שמשמש לטעינת גופנים אסינכרוניים. (I87fe8, b/174162090)

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

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

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

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

  • ה-constructor של Typeface(FontFamily) הוצא משימוש. זה היה שימש בעבר לטעינה מראש של גופנים. הפעולה עשויה להימשך עד 10 שניות גופנים שניתנים להורדה. עם גופנים שניתנים להורדה, השיחה הזו יכולה להיות מוגבלת ל-10 אנשים שניות. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload.

  • האפשרות fontResource(FontFamily): Typeface הוצאה משימוש. זה היה שימש בעבר לטעינה מראש של גופנים. הפעולה עשויה להימשך עד 10 שניות גופנים שניתנים להורדה. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload (If8e7c, b/174162090)

  • ה-constructor של SubcomposeLayoutState שמקבל את maxSlotsToRetainForReuse הוצא משימוש. במקום זאת, יש constructor חדש שמקבל את SubcomposeSlotReusePolicy – ממשק חדש שמאפשר שליטה מפורטת יותר על המקומות שיש לשמור לשימוש חוזר בעתיד. (I52c4d)

  • חושפת את פונקציית HSV ו-HSL ב-Color כנתונים לא ניסיוניים API. מרחב הצבעים של Oklab הוא עכשיו API ציבורי. (I08fb6, b/180731008)

  • הוצא משימוש AndroidComposeTestRule.AndroidComposeStatement, שלא אמור להיות ב-API ציבורי ולא עשה שום דבר בשבילך בכל מקרה. (Ibc46b)

  • שינוי שם של מחלקה ב-Kt שנוצר באופן פנימי (Ia0b9e, b/174162090)

  • הוסר FontLoadingStrategy.values (I42a9d, b/174162090)

  • הכלי לטעינת גופנים גלובלי נקרא עכשיו FontFamilyResolver. (I4f773, b/174162090)

  • שימוש במערכת החדשה לטעינת גופנים במחשב שולחני. (I9ce5c, b/174162090)

  • FontFamily.Resolver.resolve מחזירה State<Any> (I4406c, b/174162090)

תיקוני באגים

  • עכשיו, שדות TextFields יופיעו מעל המקלדת והמקלדת מוצגת, כשמצב הקלט הרך ADJUST_PAN (I8eaeb, b/190539358, b/192043120)
  • במחשב נעשה שימוש בהרכבה מקומי ל-FontFamily.Resolver
  • הוצאה משימוש של FontLoader למחשב
  • מפעל חדש של createFontFamilyResolver במחשב (I6bbb, 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() למכשירי Wear עם לחצן צד מסתובב (I18bf5, b/210748686)
  • הוספת גרסה ניסיונית של View.createLifecycleAwareRecomposer תוסף (I0cde6)

תרומה חיצונית

  • הפונקציה PointerEvent.scrollDelta.y הופכת עכשיו ב-Android (עכשיו היא מחזירה 1 במקום -1 אם מטים את גלגל העכבר ימינה) (Ia9811)

גרסה 1.2.0-alpha01

12 בינואר, 2022

androidx.compose.ui:ui-*:1.2.0-alpha01 משוחרר. גרסה 1.2.0-alpha01 מכילה את התחייבויות אלה.

שינויים ב-API

  • הוצא משימוש FontFamily.canLoadSynchronously. לנכס הזה יש שאין להם משמעות סמנטית. (Ica5ef)
  • שדה הזהות נוסף אל CompositionData ליצירה מזהים לא משתנים בבודק הפריסה. (Ic116e)
  • מזהים של מכשירי Wear OS נוספו לרשימת המכשירים בתצוגה מקדימה (I93232)

עדכונים בנושא תלות

  • עכשיו תלוי ב-Kotlin 1.6.10.

גרסה 1.1

גרסה 1.1.1

23 בפברואר 2022

androidx.compose.ui:ui-*:1.1.1 משוחרר. גרסה 1.1.1 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • תיקון NullPointerException ב-androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • תיקון הקריסה שנגרמה בגלל תוכן שבלוח העריכה במהלך קריאה מ לוח העריכה ב-Android. (I06020, b/197769306)
  • RTL קבוע ב-LazyVerticalGrid (aosp/1931080, b/207510535)

גרסה 1.1.0

9 בפברואר 2022

androidx.compose.ui:ui-*:1.1.0 משוחרר. גרסה 1.1.0 כוללת את ההתחייבויות האלה.

שינויים חשובים מאז 1.0.0

  • תמיכה יציבה באפקט גלילת היתר ב-Android 12
  • שיפורים בגודל משטחי מגע
    • חשוב לשים לב: בכל הנוגע לניסוח 1.0, רכיבי Material ירחיבו את שטח הפריסה שלהם כך שיעמדו בהנחיות הנגישות של Material עבור גודל יעד המגע. לדוגמה, משטח המגע של הלחצן יתרחב לגודל מינימלי של 48x48dp, גם אם הגדרת את גודל הלחצן קטן יותר. זה מאפשר התאמה של חומרי הלימוד לאותה התנהגות של רכיבי Material Design, שמספק התנהגות עקבית אם משלבים בין תצוגות מפורטות לבין 'כתיבה'. השינוי הזה גם מבטיח שכשיוצרים את ממשק המשתמש באמצעות רכיבי 'חומר הכתיבה', צריך לעמוד בדרישות המינימליות לנגישות במשטח מגע.
  • תמיכה יציבה במסילת הניווט
  • שדרוג של מספר ממשקי API ניסיוניים שכבר היו ניסיוניים לגרסה יציבה
  • תמיכה בגרסאות חדשות יותר של Kotlin

גרסה 1.1.0-rc03

26 בינואר, 2022

androidx.compose.ui:ui-*:1.1.0-rc03 משוחרר. גרסה 1.1.0-rc03 מכילה את ההתחייבויות האלה.

תיקוני באגים

  • עודכנה לתמיכה בחומר 'כתיבה' 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. שימו לב שהמשמעות היא שסעיפי חסימה שתפסו את 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(). השמטת כל האירועים והשלכה של ההיקף מתרחש עכשיו בסוף השיטה שנקראה Performance*Input() , כמו לפני. (I2bed8)
  • בוצעה הסרה של MultiModalInjectionScope.Touch וגם MultiModalInjectionScope.Mouse. כדי להכניס מגע ועכבר אירועים לתנועות מרובות מודלים, עכשיו תוכלו להשתמש MultiModalInjectionScope.touch() והקבוצה MultiModalInjectionScope.mouse(), ושניהם מקבלים lambda מוגדר היקף המקלט של המודל הזה. (Idde18)

תיקוני באגים

  • ערך ברירת המחדל של durationMillis אינץ' הפרמטר TouchInjectionScope.swipeWithVelocity מחושב עכשיו כך ש- היא אפשרית. (I19deb)

גרסה 1.1.0-beta02

3 בנובמבר 2021

androidx.compose.ui:ui-*:1.1.0-beta02 משוחרר. גרסה 1.1.0-beta02 מכילה את התחייבויות אלה.

שינויים ב-API

  • נוסף ממשק API ניסיוני של BringIntoView, שמאפשר לשלוח בקשה להורים כדי שהם יגלולו כדי שפריט יוצג (Ib918d, b/195353459)
  • ממשקי API חדשים של אנימציה לתמיכה בכלים. באופן ספציפי, שמאפשרים לבדוק את האנימציות את ההגדרות שלהם מעברים. (I4116e)

תרומה חיצונית

  • נוסף 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)
  • נוסף עומס יתר של פריסה בלי ילדים, עם יעילות משופרת (Ib0d9a)
  • הסרת את InternalCompilerApi משיטות ה-Composer חייב להיקרא חוצה-מודולים (I1aa0b)
  • השירות SemanticsNodeInteraction.performSemanticsAction חוזר ה-SemanticsNodeInteraction שבו הופעלה הפונקציה. (I9e5db)
  • נוספה LocalInputModeManager CompositionLocal כדי לזהות TouchMode/NonTouchMode. (I6a83c, b/175899786)
  • הוספת את viewConfiguration: ViewConfiguration אל LayoutInfo כדי לאפשר לצרכנים לקבל את הערך הנכון לפעולות כמו לחיצה ארוכה הזמן הקצוב לתפוגה. (I76ca6)
    • הוספת את viewConfiguration: ViewConfiguration אל InjectionScope כדי לאפשר לבדיקות לכוונן את החדרת קלט על סמך למשל, לחיצה ארוכה על זמן קצוב לתפוגה או לדילוג במגע.
    • משך ברירת המחדל של לחיצה ארוכה והקשה כפולה השתנה בשניהם קלט מגע ועכבר כך שיתבסס על הערכים InjectionScope.viewConfiguration
  • הטמעה של תפריט נפתח חשופים שמבוסס על תפריט נפתח של תיבת חשיפה למודעות עם TextField ותפריט נפתח בפנים (If60b2)
  • השדה substituteOnOutsideClick נוסף ל-PopupProperties ומחליף אתclosureOnClickOutsideשיצא משימוש. המאפיין החדש מקבל את מיקום הקליק ואת גבולות העוגן, וכך מאפשר שליטה מדויקת יותר אם צריך להפעיל את onDismissRequest או לא. לדוגמה, האפשרות הזו יכולה להיות שימושית כדי למנוע את סגירת העוגן במקרה של נגיעות בעוגן.
    • updateAndroidWindowManagerflags נוסף ל-PopupProperties, ומציע שליטה ברמה נמוכה על הדגלים שמועברים על ידי החלון הקופץ אל windowManager של Android. הפרמטר של lambda יהיה הדגלים המחושבים מהערכים של PopupProperties שיוצרות את הדגלים של windowManager: למשל. שניתן להתמקד בו. התוצאה של 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)
  • פתרון בעיות שקשורות ל-WearOS TapToDismissBox שלפעמים לא מטפלת בהחלקות. (I9387e)
  • זמן ברירת המחדל בין אירועי קלט שהוחדרו היה השתנה מ-10 אלפיות השנייה ל-16 אלפיות שנייה. זה עשוי לשנות את תוצאות הבדיקות שמבצעות תנועות קלט, כמו החלקה ספציפית. (I829fd)

גרסה 1.1.0-alpha05

29 בספטמבר 2021

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

שינויים ב-API

  • נוספה תמיכה בתקשורת בין מגבילים (Id5467, b/198826874)
  • מצביעים היסטוריים ניסיוניים נוספו ל-PointerEventChange. (Ic1fd8, b/197553056, b/199921305)
  • הוספת את density: Density ואת layoutDirection: LayoutDirection אל "LayoutInfo". הפעולה הזו מאפשרת לצרכנים של LayoutInfo כדי לפרש את המאפיינים ואת המיקום שנחשפים ב-LayoutInfo כראוי. (I002f1)
  • נוספה תמיכה ניסיונית בהחדרת אירועים של עכבר. כדאי להשתמש performMouseInput כדי להתחיל לשלוח אירועים לגבי העכבר או לשלוח אירועים לגבי העכבר דרך המאפיין Mouse של MultiModalInjectionScope במהלך תנועת קלט מרובת מודלים באמצעות performMultiModalInput. צפייה MouseInjectionScope למסמכי התיעוד של ה-API הזמין. (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)
  • שם הפרמטר של המאפיין הזמני השתנה כך שיתאים לרכיב המורכב (I3a482, b/191017532)
  • הצגה של performTouchInput ושל TouchInjectionScope בתור החלפה של performTouchInput ו-TouchInjectionScope, סלילת ובצורות אחרות (כמו עכבר).

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

    ההתנהגות של TouchInjectionScope כמעט זהה ל- GestureScope, עם שני פרטים קטנים:

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

    לסיום, 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 מכילה את התחייבויות אלה.

תכונות חדשות

  • הכתיבה 1.1.0-alpha03 עודכנה בהתאם ל-Kotlin 1.5.30. (I74545)

שינויים ב-API

  • נוסף Modifier.inspectable כדי לעטוף את מקשי הצירוף האחרים. (I1909b, b/191017532)
  • נוסף API של BlurredEdgeTreatment כדי לטשטש תרחישים לדוגמה בצורה פשוטה יותר שילובים נפוצים של דגלים בקליפס ו-SlotModes. רוב התרחישים לדוגמה כוללים לאפשר רינדור של תוכן מטושטש מחוץ לגבולות התוכן המקורי ולטשטש אזורים מחוץ לגבולות האלה עם תוכן שחור שקוף אל גבולות התוכן דוגמים את הקצה הקרוב ביותר כדי לטשטש את הליבה שמעבר לתוכן גבולות. (I6b4b7, b/166927547)
  • נוספה תמיכה ב-Recommenderאיך בשולחן העבודה של הכתיבה. השיקו את OffsetOff וגם את מקש הטשטוש הוא דרך פשוטה הוספת אפקטים חזותיים לטשטוש בחלק של היררכיית ההרכב. (I0f6aa, b/166927547)
  • שימוש ב-Render Effects API שאפשר להגדיר Modifier.graphicsLayer לשינוי של השכבה עצמה. הזה יכול לשמש לטשטוש תוכן של תוכן קומפוזבילי וחומרים קומפוזביליים צאצאים בתוך יצירה מוזיקלית ההיררכיה. (I47c4d, b/166927547)
  • AwaitPointerEventScope כולל עכשיו withTimeout() ו-withTimeoutOrNull() (I507f0, b/179239764, b/182397793)
  • גודל משטח המגע המינימלי נוסף ל-ViewConfiguration לשימוש בסמנטיקה ובקלט של מצביע כדי להבטיח נגישות. (Ie861c)
  • הוספת תמיכה ב-TIFFMode.Decal וזה שימושי להגדרת קצה להתנהגות של אפקט רינדור שמבוסס על טשטוש. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey hasScrollToIndexAction ו-hasScrollToKeyAction הם עכשיו API יציב (I142ae, b/178483889)
  • נוספה שיטת בדיקה כדי לקבל גבולות חתוכים. (I6b28e)

תיקוני באגים

  • השיטה 'הוסרה' הוסרה מ-BluredEdgeTreatment (טיפול בטשטוש) לטובת של בדיקה מפורשת אם הצורה ריק. (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)
  • נוסף constructor של DpRect(DpOffset, DpSize) (I2cf16, b/194219828)
  • נוספה מחלקה DpSize (I7abb1, b/194219828)

תיקוני באגים

  • קובץ XML מעודכן של Vector Graphics לניתוח לתמיכה ב-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 לתמיכה בשרטוט של מברשת שרירותית בתוך צבע, בדומה ל-ColorPainter

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

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

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

תיקוני באגים

  • כדי לספק תמיכה טובה יותר בשרשור של מגבילי שרטוט, יש לוודא שההטמעה של Modifier.Paint שיחות pullsContent. בעבר היה ציפייה מ-Modifier.Paint לצומת עלה ב- עם זאת, שרשרת המגבילים להגדיר אותו בקונטיינר קומפוזבילי (לדוגמה) או להוסיף קישוטים מעל התמונה, כמו Modifier.paint().border() באמצעות Modifier.Paint קריאה ל-drawContent אחרי ציור התוכן של שלנו, יש לנו מודל עקביות התנהגותי טוב יותר עם תבנית הצירוף. (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 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • תוקן מכונות של conversionStateOf למעקב אחרי קריסה. (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 כוללת את ההתחייבויות האלה.

עודכנה לתמיכה בגרסה 'כתיבה' 1.0.2. הכתיבה 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

זוהי הגרסה היציבה הראשונה של 'כתיבה'. לפרטים נוספים, מומלץ לעיין בבלוג הרשמי של תוכנית 'כתיבת תוכן'.

בעיות מוכרות

  • אם אתם משתמשים ב-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-preview (Iefa28, b/190649014)

שינויים ב-API

  • הוסרו FocusManager#moveFocusIn ו-FocusManager#moveFocusOut ניסיוניים שהוצאו משימוש (I227d7, b/170154986, b/186567354, b/168510304)
  • לוח הציור תומך עכשיו בפרמטר contentDescription עבור נגישות. (Ib547c)
  • השם של useDefaultMaxWidth ב-PopupProperties שונה ל-usePlatformDefaultWidth. (I05710)
  • מעכשיו אפשר להציג תיבות דו-שיח לכל רוחב המסך. (I83929, b/190810877)
  • נוספה תמיכה ניסיונית עבור צבע HSV ו-HSL של משפטים יחידים, (Id7cf8, b/180731008)

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

  • כתיבת @Preview מספקת עכשיו LocalActivityResultRegistryOwner שמאפשר לך כדי לראות תצוגה מקדימה של תכנים קומפוזביליים שמשתמשים בממשקי API כמו rememberLauncherForActivityResult() שתלויות של הבעלים הקיימים. (Ib13d1, b/185693006)
  • כתיבת @Preview מספקת עכשיו LocalOnBackPressedDispatcherOwner שמאפשר לך כדי לראות תצוגה מקדימה של תכנים קומפוזביליים שמשתמשים בממשקי API כמו BackHandler שתלויות בבעלים הקיים. (Ia1c05, b/185693006)

תיקוני באגים

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

גרסה 1.0.0-beta09

16 ביוני 2021

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

שינויים ב-API

  • שינוי התפקיד 'טיפוסים בני מנייה (enum)' ו-LiveRegionMode למחלקות מוטבעות עם Private constructor (Id1890)
  • שימוש באותיות רישיות מומר למחלקה בתוך השורה. (Id5a1c)
  • משנים את HapticFeedbackType למחלקה בתוך השורה. (I255ec)
  • Modifier.pointerInteropFilter הוא @trialComposeUiApi. (Iede6c)
  • Textיישור, FontSynthesis ו-TextDirection גם בתוך השורה הסוגים. (I212fe)
  • TextOverflow משתנה למחלקה מוטבעת. (I433af)
  • עכשיו FontStyle הוא מחלקה מוטבעת. (I9e48b)

תיקוני באגים

  • קבועי מפתח הם @trialComposeUiApi בשלב זה. צריכה קוד יכול להצהיר על קבועים פרטיים לפני ייצוב. (Ia5d48)
  • עכשיו אפשר להריץ בדיקות פיתוח ב-Robolectric. הבאים עד כה זוהו מגבלות:
    • אין מפת סיביות מקורית, לכן ImageBitmap() מוביל NullPointer וכל החריגים.
    • אין שרטוט, לכן האפליקציה captureToImage() תמתין ללא הגבלת זמן מעבר המשיכה הבא (כלומר הוא ננעל במנעול).
    • לא נטען גופן, כך שטקסט כלשהו יימדד בצורה שגויה. הכול לתווים יש גובה קבוע של כ-20 פיקסלים וברוחב של 1 פיקסלים.
    • ה-thread הראשי לא מופעל על ידי ComposeTestRule.waitUntil {} בזמן ההמתנה, ולכן הוא זהה לזה של 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 או בספרייה מקבילה. הקובץ מציין כלל בכל שורה, כאשר כלל במקרה הזה הוא דפוס להתאמה ל-methods או מחלקות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט פרופיל ART קריא לאנשים, שנעשה בו שימוש כשמשתמשים ב-adb shell profman --dump-classes-and-methods .... לכללים אלה יש אחת משתי דרכים לטירגוט שיטות או מחלקות.

  • כלל שיטה יכלול את הדפוס הבא:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • וכלל מחלקה יהיה הדפוס הבא:

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

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

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

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

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

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

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

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

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

איך זה עובד?

  • ספריות יכולות להגדיר את הכללים האלה, שיישמרו בפריטי מידע שנוצרו בתהליך הפיתוח (Artifact) של AAR. לאחר מכן, כשמתבצעת בנייה של אפליקציה שכוללת את פריטי המידע האלה שנוצרו בתהליך הפיתוח (Artifact), הכללים האלה ממוזגים יחד, והכללים הממוזגים משמשים כדי ליצור פרופיל 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 למחלקות מוטבעות כדי להימנע עם הצהרות ממצות נוספו ערכי enum חדשים. (I2b5eb)
  • הסרה של @ExperimentalComposeUiApi מהחשבון PopupProperties. (I01fa6)
  • הערך PointerType השתנה מ-enum למחלקה בתוך השורה (If5058)
  • מאפייני ContentDescription ו-Text סמנטיקה כבר לא זמינים ערכים בודדים, אלא רשימות. כך אפשר למזג אותם כפי שהם במקום זאת של שרשורי מחרוזות. סופקו גם ממשקי API טובים יותר לבדיקה כדי להשתמש שינויים (Ica6bf, b/184825850)
  • Modifier.focusModifier() הוצא משימוש והוחלף ב-Modifier.focusTarget() (I6c860)
  • Modifier.onSizeChanged() ו-Modifier.onGloballyPositioned() כבר לא בתוך פונקציות בתוך השורה (I727f6, b/186109675)
  • KeyboardType enum מוחלף במחלקה מוטבעת. (I73045, b/187055290)
  • FocusState enum הוחלף בממשק עם FocusState (Iccc1a, b/187055290)
  • ImeAction enum מוחלף במחלקה מוטבעת. (I18be5, b/187055290)
  • המערכת ממירה את PlaceholderVerticalAlign למחלקה בתוך השורה. (If6290)
  • TextUnitType היא עכשיו מחלקה בתוך השורה. (I4cba9)
  • הפונקציות של AnnotatedString.withAnnotation הן עכשיו trialTextApi במקום trialComposeApi. (I0cd0a)
    • constructor של TextUnit עם TextUnitType נקרא עכשיו trialTextApi במקום trialComposeApi.

תיקוני באגים

  • תוקן הבאג שנוצר בגרסת בטא 07, שבו פריטים ב-LazyColumn/Line הוצגו באופן חלקי אחרי הגלילה (I8c9ac, b/188566058)
  • עכשיו detectDragGesures, detectVerticalGestures ו-detectHorizontalGestures ישתמשו בשינוי המיקום באופן אוטומטי, ללא צורך בקריאה לשנות.consumePositionChange בקריאות החוזרות של onDrag (I42fc4, b/185096350, b/187320697)
  • תוקנו LayoutModififiers שמאפשרים קווי יישור. תיקנו באג שגרם לא למדידה מחדש של ההורה כשקווי היישור של הילדים השתנו. (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)
  • KeyEventType enum מוחלף במחלקה מוטבעת. (Id670a, b/187055290)
  • FocusDirection enum מוחלף במחלקה מוטבעת. (Ib6d03, b/187055290, b/184086802)
  • מאפשרת להעלות את מצב SubcomposeLayout (פריסת משנה) כך שיאפשר לכם להכין מראש את התוכן לפרמטר מחייב slotId, שיקרה את המעבר של המדד הבא מהר יותר, כי בפעם הבאה שננסה להכניע את ערך ה-lotId הנתון, לא יהיה צורך ליצור הרכבה. (I42580, b/184940225)
  • נוספה נקודת אחיזה לבחירת קליפ (Iff80d, b/183408447)
  • הוסרו ממשקי API שלא נמצאים בשימוש שקשורים לתמיכה של LayoutInspector. (I2ac78)

תיקוני באגים

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

גרסה 1.0.0-beta06

5 במאי 2021

androidx.compose.ui:ui-*:1.0.0-beta06 משוחרר. גרסה 1.0.0-בטא06 מכילה את ההתחייבויות האלה.

שינויים ב-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() כדי לטעון גופנים מנכסים, מ-File ומ-FileDescriptor (I5d382)
  • נוסף ממשק API לנגישות error שמאפשר לסמן צומת שמכיל קלט לא חוקי (I12997, b/180584804, b/182142737)
  • נוספו Font() עומסי יתר לטעינת גופנים מנכסים, מקובץ ומ-FileDescriptor (I43007)
  • התמיכה בשמירת הערות ב-AnnotatedString TextFieldValue.Saver הכתובת addTtsAnnotation התווספה והפונקציות של כלי העזר ל-Annotation AnnotatedString.Builder (I8cbdc, b/178446304)
  • נוספה פונקציה constructor של TextUnit TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

גרסה 1.0.0-beta05

21 באפריל 2021

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

שינויים ב-API

  • נוספו FocusManager.moveFocus(In) ו-FocusManager.moveFocus(Out) ניסיוניים (Ic5534, b/183746743)
  • נוסף ממשק API ניסיוני של performTextInputSelection (I2dcbb, b/178510628)
  • הממשק InputEventCallback הוצא משימוש. לא הייתה אפשרות להשתמש בממשק ממשק API ציבורי; ולא היה שימוש בו (I34a02, b/184003208)
  • הוצא משימוש TextLayoutResult/createTextLayoutResult מותאמת אישית. זהו פונקציה ציבורית שלא בשימוש שנוסף לבדיקה. הפונקציה לא עושה שום דבר שאפשר להשתמש בו כתיבת ממשקי API של טקסט. הפונקציה הוצאה משימוש עכשיו יוסר מאוחר יותר. 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 עבור Local SoftwareKeyboardController, שמאפשר להגדיר אותו (במיוחד שימושי בבדיקות) (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 תלויה מקטע 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

  • נוספה יצירה מקומית חדשה של LocalSoftwareKeyboardController צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController TextField (שדה טקסט). (I5951e, b/168778053)
  • נוספה יצירה מקומית חדשה של LocalSoftwareKeyboardController צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של 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 הבא בתור @trialTestApi:
    • 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) } כשנעשה שימוש ביעד של כתיבת ניווט. (I1312b, b/180042685, b/180701630)
  • נוספה יצירה מקומית חדשה של LocalSoftwareKeyboardController צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController TextField (שדה טקסט). (I658b6, b/168778053)
  • תוקנו חריגות NoSuchElement חריגות נדירות ב-ComposeRootRegistry tearDownRegistry() (Iddce1)

גרסה 1.0.0-beta01

24 בפברואר 2021

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

זוהי הגרסה הראשונה של גרסת הבטא של 'פיתוח נייטיב' 1.0.0.

שינויים ב-API

  • onStart callback נוסף אל detectDragGestures (I67269, b/179995594)
  • מגבילי התאמה של הגודל לפי גורמים פנימיים כבר לא ניסיוניים. (I15744)
  • השם של MeasureBlocks השתנה ל-MeasurePolicy, והוא הפך לממשק מהנה. ממשקי ה-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.collectIsClickedAsState().
    • בתרחישים מורכבים לדוגמה, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם האינטראקציות. למידע נוסף, אפשר לעיין במסמכים ובדוגמאות של InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • הוספת ממשק של AccessibilityMananger LocalAccessibilityMananger in CompositionLocals (I53520)
  • הוסרו שיטות LayoutCoordinates שהוצאו משימוש, יש להשתמש בפונקציה במקום במאפיין עבור positionInParent ו-boundsInParent (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)
  • עכשיו ניתן לראות את הערך של המדד 'מודד', שמייצג את הגודל שאליו נמדדה פריסת הצאצא. יכול להיות שהגודל הזה לא יתאים למגבלות המדידה. (Ib2729, b/172560206, b/172338608)
  • הוספת מגביל SelectGroup שמאפשר לסמן איסוף של כרטיסיות או לחצני רדיו למטרות נגישות (Ie5c29)
  • defaultFactory של compositionLocalOf וגם השדה staticCompositionLocalOf נדרש עכשיו במקום אופציונלי.

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

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

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

  • הכיוון הועבר לחבילת הבסיס. VelocirtTracker עבר מ-ui.gesture ל-ui.input.pointer. (Iff4a8, b/175294473)

  • imageResource ו-VectorResource הם עכשיו פונקציות תוסף ב-ImageBitmap ו-ImageVector במודעות נלוות, בהתאמה. load{Image,Vector,Font}Resource פונקציות נמחקו. (I89130)

  • AnimationClockObservable וכיתות המשנה כבר הוסר. האנימציה הוסרה. (Icde52, b/177457083)

  • השם 'ספקים' השתנה ל-CompositionLocalProvider

    • ה-Composition constructor לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
    • השדה currentCompositeKeyHash הפך לנכס קומפוזבילי ברמה העליונה במקום לפונקציה קומפוזבילית ברמה העליונה.
    • CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
    • ComposableLambda נוצרה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
    • הגרסה ComposableLambdaN הפכה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
    • הפונקציה SnapshotFlow הועברה למרחב השמות androidx.compose.runtime
    • שיטת המיזוג של snapshotMutationPolicy כבר לא ניסיונית
    • הפונקציה @TestOnly ברמה העליונה clearRoots הוסרה. אין בו יותר צורך.
    • הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. הם כבר לא נחוצים.
    • השדה Composer.collectKeySourceInformation הוסר. אין בו יותר צורך.
    • השיטות isjoinedKey, {1}joinKeyLeft ו-joinKeyRight הוסרו. הם כבר לא נחוצים.
    • ממשקי API שונים ברמה העליונה הועברו וארגנו מחדש בקבצים שונים. בגלל הסמנטיקה של מחלקות הקבצים של Kotlin, זה פוגע בתאימות בינארית אבל לא בתאימות מקורות, ולכן לא אמורה להיות בעיה עבור רוב המשתמשים.
    • (I99b7d, b/177245490)
  • בוצעה הסרה של ComponentActivity.setContent() מ-Compose:ui. יש להשתמש בשובר של androidx.activity:activity-compose:1.3.0-alpha01. viewModel() ו-LocalViewModelStoreOwner הוסרו מ-Compose:ui. יש להשתמש באלה של androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b)

  • הפעולה של Modifier.scrollable בוצעה מחדש. עכשיו הוא משתמש בממשק שניתן לגלול במקום במחלקה ScrollableController (I4f5a5, b/174485541, b/175294473)

  • התמיכה של CustomEvens מ-PointerInputModifier הוסרה (I02707, b/175294473)

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

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

  • : longClickmotionFilter ו-doubleClickGestureFilter הוסרו. אפשר להשתמש ב-Modifier.pointerInput עם פונקציות מסייעות, למשל,DetecttapGestures (I2ifiedf, b/175294473)

  • ממשק ה-API של String.format הוסר סיווגים מחדש של שימושים שיטות toString שאינו ממנף String.format באופן פנימי. (Id1290)

  • טענות נכוֹנוּת (assertions) של dp הוסרו (I798d2)

  • הוסר androidx.compose.runtime:runtime-dispatch (I55feb)

  • פעולות טקסט בודקות עכשיו את המיקוד באופן אוטומטי (I13777, b/179648629)

  • הוסר runBlockingWithManualClock (I15cdc, b/179664814)

  • המיקום של הגלילה ב-Modifier.verticalScroll()/verticalScroll() מיוצג באמצעות Ints עכשיו (I81298)

  • השם של FlingConfig השתנה ל-FleingBehavior, שמאפשר עכשיו להתאים אישית אנימציית השעיה במקום להגדיר מראש 'דעיכה'. (I02b86, b/175294473)

  • נוספה פונקציית עזר שמועילה להגדיר את אותה הפעולה לכל הקריאות החוזרות של ImeAction (I63447, b/179226323)

  • הוסרה קריאה חוזרת (callback) של Software KeyboardController מכל הטקסט השדות האלה יוחלפו בקרוב ב-API חדש. (Iae869, b/168778053)

  • השימוש ב-FontSpan וב-FontWeigthStyleSpan הופסק. (Ie5b56, b/177423444)

  • בוצעו השינויים הבאים ב-Material API:

    • נוסף פרמטר contentPuter ל-Top/BottomAppBar כדי לאפשר התאמה אישית של המרווח הפנימי שמוגדר כברירת מחדל.
    • סדר הפרמטרים של BackdropScaffold תואם להנחיות ה-API כאשר הפרמטרים הנדרשים מופיעים לפני פרמטרים אופציונליים.
    • הפרמטר icon הועבר ב-BottomNavigationItem אל אחרי selected ו-onClick.
    • השם של הפרמטר alwaysShowLabels השתנה ב-BottomNavigationItem ל-alwaysShowLabel.
    • שינית את השם של הפרמטרים bodyContent בכמה רכיבים ל-content בלבד.
    • הפרמטרים הוסדרו מחדש ב-ButtonDefaults.buttonColors(). לתשומת ליבכם: מכיוון שסוג הפרמטרים לא השתנה, לא תהיה שגיאה בקוד. עליכם לוודא שאתם משתמשים בפרמטרים בעלי שם או לעדכן את הסדר באופן ידני, אחרת הקוד לא יפעל כמו קודם.
    • הפרמטר secondaryVariant נוסף אל darkColors(). הצבע הזה בדרך כלל זהה ל-secondary בעיצוב כהה, אבל הוא מתווסף לעקביות ולהתאמה אישית נוספת.
    • הוסרו הקיצורים HeightionDefaults ו-animate יוצגו() מפלטפורמת ה-API הציבורית כי הם לא היו שימושיים או נפוצים.
    • השם של onValueChangeEnd שונה ב-Slider ל-onValueChangeFinished ולכן השם הוא null.
    • השם של הפרמטר text השתנה בתא Snackbar ל-content כדי לשמור על עקביות.
    • הפרמטר contentPadding נוסף אל DropdownMenuItem כדי לאפשר התאמה אישית של המרווח הפנימי שמוגדר כברירת מחדל ויצר את content כתוסף ב-RowScope.
    • השם של ModalDrawerLayout השתנה. השם החדש הוא ModalDrawer.
    • השם של BottomDrawerLayout השתנה. השם החדש הוא BottomDrawer.
    • (I1cc66)

תיקוני באגים

  • נוסף API כדי להשתמש במשאבים של מונפש VectorDrawable בכתיבה. כדאי להשתמש animatedVectorResource כדי לטעון קובץ XML <animated-vector> כ-][=ImageVector וליצור אנימציה with PainterFor (I8ea91)
  • נוספה יצירה מקומית חדשה של Local SoftwareKeyboardController צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של 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 דורש שימוש במקשי זיכרון כדי לציין כשהקורוטין של זיהוי קלט הסמן צריך להתחיל מחדש של יחסי התלות. (I849cd)
  • השם של CompositionReference השתנה ל-CompositionContext (I53fcb)
  • שם הגבולות השתנה ל-DpRect (I4b32a)
  • עדכון בדיקה: hasText() יבדוק גם טקסט של קלט וגם טקסט של תווית/הרמז/placeholder בשדה הטקסט (Iab803)
  • הפריטים הקומפוזביליים של viewModel() ו-LocalViewModelStoreOwner הועברו אל androidx.lifecycle.viewmodel.compose. עכשיו צריך להוסיף תלות נפרדת בשם androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 כדי להשתמש בה. (I7a374)
  • הרשאה לביצוע פעולה null ב-AccessibilityAction, שינוי הפעולה התווית ב-AccessibilityAction וב-CustomAccessibilityAction, ב- CharSequence to String (I0dc82)
  • כדי שהשמות יהיו זהים יותר מוסכמות עם ImageBitmap ו-ImageVector, השם של ImagePainter השתנה ל-BitmapPainter מקביל ל-VectorPainter. (Iba381, b/174565889)
  • ממשקי API טובים יותר לבדיקה של מחרוזות משנה עם מחרוזת משנה עכשיו כארגומנט (Icbe78)
  • נוסף Modifier.focusOrder() מקבל FocusRequester בלי לציין lambda בהתאמה אישית. זה מועיל כשצריך רק לציין אבל לא סדר מיקוד מותאם אישית לתוכן קומפוזבילי (I4f52a, b/179180978)
  • ElementActivity.setContent עבר אל androidx.activity.compose.setContent androidx.activity:activity-composition. (Icf416)
  • שיטות השמדה ו-Copy() הוסרו מ- מחלקות שבהן נעשה שימוש רק לעיתים רחוקות. (I26702, b/178659281)
  • החלון הקופץ הועבר כך שיהיה ספציפי לפלטפורמה. השם של AndroidPopupProperties השתנה ל-PopupProperties, והפרמטר isFocusable הועבר לפרמטר focusable ב-PopupProperties (Ieeea5)
  • תיבת הדו-שיח הועברה להיות ספציפית לפלטפורמה. השם של AndroidDialogProperties השתנה ל-DialogProperties. (I4ef69, b/179138130)
  • Made LayoutNode פנימי (I8a7b1, b/175103944)
  • הפונקציה Constraints.enforce הוחלפה ב-Constraints.constrain (I8b8ea)
  • הפרמטר loadFontResource הוצא משימוש. במקומו צריך להשתמש ב-fontResource. imageResource , loadImageResource , vectorResource ו-loadVectorResource הוצאו משימוש. במקום זאת, צריך להשתמש ב- PainterResource. (I6b809)
  • מטעמי ביצועים, הסמנטיקה של ScrollAxisRange לוקחת עכשיו lambdas מחזירה Floats במקום ערכי Float ישירים. (If4a35, b/178657186)
  • נוספה סמנטיקה של EditableText כדי לסמן את הטקסט שהוזן בשדה הטקסט כקלט שניתן לעריכה, לבדיקת נגישות ושיטות בדיקה תואמות (I8e07a)
  • Made ownerLayer/OwnerScope/OwnerSnapshotObserver פנימי (I4ffaf, b/175103944)
  • השם של toIntPx() השתנה ל-roundToPx(). (I9b7e4, b/173502290)
  • השם של IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
  • תמונת המצב של ה-API עודכנה כדי להיות עקבית יותר עם הנחיות ל-API וגם הסתרת סיווגי הטמעה פנימיים מה-API הציבורי. (Id9e32)
  • נוספו פעולות הרחבה וכיווץ של סמנטיקה. תאריך ההוספה הרחב וHalfExpand in ModalBottomSheetState (Ib5064)
  • ה-Modifier.dragmotionFilter הוצא משימוש. במקומה צריך להשתמש במדיניות Modifier.pointerInput { detectDragGestures (...)}. לחלופין, אפשר להשתמש ב-Modifier.draggable לגרירה בציר אחד (I0ba93, b/175294473)
  • שינית את השם של 'סביבה' כך שיתאים לאווירה -> שינוי שם של CompositionLocal. לסביבה (I2d55d)
  • BaseTextField, שהוצא משימוש, הוסר עכשיו. במקומו צריך להשתמש ב-BasicTextField. (I71368)
  • הבחירה הועברה לבסיס. (I7892b)
  • בדומה לאופן שבו הסרנו בעבר תוכן קומפוזבילי state { 0 } ואנחנו מקדמים עכשיו שימוש כמו remember { mutableStateOf(0) }, אנחנו עומדים להסיר את התוכן הקומפוזבילי savedInstanceState { 0 }. במקום זאת, צריך להשתמש בפונקציה rememberSaveable { mutableStateOf(0) } והיא תישמר ותשוחזר באופן אוטומטי אם אפשר לאחסן בחבילה את הסוג שנעשה בו שימוש ב-MutableState. אם בעבר העברת אובייקט חיסכון בהתאמה אישית עכשיו, עליך להשתמש בעומס יתר חדש של קובץ שמור שניתן לשמור, שמכיל את הפרמטר 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 השתנה כדי לבטל, כדי ליצור ניגודיות ביחס לסגירה. (Ib6d76)
  • השם של UiSavedStateRegistry השתנה ל-SaveableStateRegistry, השם של AmbientUiSavedStateRegistry השתנה ל-AmbientSaveableStateRegistry ושניהם הועברו לחבילה androidx.compose.runtime.saveable. (I30224)
  • השם של Artefact androidx:compose:runtime:runtime- saved-instance-state השתנה ל-androidx:compose:runtime:runtime-saveable (I6dcac)
  • הרבה ממשקי API ותיקים שהוצאו משימוש בחבילה של ממשק המשתמש נמחקים. (I2f2dc)
  • פריט ה-Artifact:runtime-dispatch הוצא משימוש. עכשיו ניתן למצוא את MonotonicFrameClock בקובץ פיתוח: הידור:runtime ו- ניתן למצוא את AndroidUiDispatcher ב-Compose:ui. (Ib5c36)
  • Outline.* כבר לא סיווגי נתונים (I4879e, b/178001427)
  • בוצעה הסרה של view.captureToImage() ללא החלפה. (I7fcd2)
  • שימוש ב-ColorMatrix API כדי לשנות את ערכי RGB של תוכן המקור Refactored ColorFilter API להיות ולהתאים להטמעה של PathImpact. Ica1e8
  • מוסיפים את הפרמטרDeployDirection אל Form CreateOutline (יצירה של Outline). כך ניתן ליצור צורות בפריסה עם התייחסות לכיוון. (I57c20, b/152756983)
  • onImeActionPerformed הוצא משימוש. להשתמש ב- KeyboardActions במקום זאת (If0bbd, b/179071523)
  • הוספת הקשר קורוטין לInfiniteAnimationPolicy רכיב שהוחל באנימציות אינסופיות. כברירת מחדל לא מותקנת, מלבד כאשר מריצים בדיקות באמצעות ComposeTestRule. (I50ec4, b/151940543)
  • CanDrag הוסר מה-Modifier.scrollable. (Id66e7, b/175294473)
  • השם של LayoutLayouts.parentCoordinates שונה ל- Layouts.parentLayoutCoordinates לאפשר יצירה של הורה Coordinates. הנכס הורה Coordinates מציע עכשיו את LayoutCoordintes של מגביל ההורה. הפעולה הזו תגרור ליצור תרחישים מלאים יותר של onSizeChanged() onGloballyPositioned() (Idfbfd, b/177926591)
  • הוצאנו משימוש את הפרמטר TapתנועותFilter, doubleמקישיםGestureFilter, long, ClicktionFilter ו-pressIndicaitonGestureFilter. במקום זאת, אפשר להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה generateמקישים TalkBack. (I6baf9, b/175294473)
  • ה-unregisterProvider של SaveableStateRegistry הוסר. במקום SubscribeProvider() מחזיר אובייקט של SaveableStateRegistry.Entry, שאפשר להשתמש בו כדי לבטל את הרישום (Ic4274, b/178583739)
  • השם של ReSavedInstanceState() השתנה ל-GeminiSaveable() והועבר אל החבילה androidx.compose.runtime.saveable. (I1366e, b/177338004)
  • הוסרו CoreText ו-CoreTextField מ-API ציבורי
    • הוסר עומס יתר של SelectionContainer שהוצאה משימוש
    • (I99c19)
  • בדיקות שבהן 'כתיבה' משמש בהיררכיות שנוספו/הוסרו ישירות אל windowManager יותר יציבות. (Ie81ed, b/175765614)
  • הוסרה Recomposer.current(). [Abstract]ComposeView עכשיו כברירת מחדל של Recomposers שנוצרו באופן עצלני, ברמת החלון, המבוססים על ViewTreeLifecycleOwner לחלון. הרכב מחדש ו סימוני האנימציה המבוססים על withFrameNanos מושהים במהלך מחזור החיים של המארח הופסק. (I38e11)
  • ב-Recomposer.runningRecomposers יש עכשיו גרסה גלובלית של StateFlow של RecomposerInfo לקריאה בלבד לצורך צפייה במצב הרכב מתמשך את התהליך. יש לתת עדיפות ל-API הזה על פני Recomposer.current(), שעכשיו הוצא משימוש. (If8ebe)
  • בוצעה שמירה, 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)
  • השמות של פרמטרים ב- RounderCornerForm , CutCornerForm ו-Corner להביעצורה השתנו משמאל/ימין להתחלה/לסיום, כדי לתמוך בשיקוף האוטומטי של הצורה בכיוון rtl. התחלנו להשתמש ב-AbsoluteRounderCornersha וב-AbsoluteCutCornerForm במקרים שבהם אין צורך בשיקוף אוטומטי. (I61040, b/152756983)
  • ה-API שאליו מיועד הפלאגין של המהדר לכתיבה עבר ארגון מחדש לשימוש בממשק וגם סיווג קונקרטי. הממשק גם כבר לא משתמש פרמטר של סוג.

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

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

תיקוני באגים

  • תצוגות מורכבות שמוצבות בהיררכיות תצוגה שהן צאצאים של ביצירה אחרת מתארחת עכשיו יצירות צאצא של אבות האב (I92883)
  • קובץ ה-imageFromResource של הכתיבה עודכן API לשימוש חוזר במטמון של המשאב כשטוענים אובייקטים של 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, ולהשאיר את base.layout. (I9420b, b/173387208)
  • הלחצן Key.DPadUp הוצא משימוש. במקומו צריך להשתמש ב-Key.DirectionUp. (Iab335, b/177954892)
  • מעכשיו ממשק פנימי. (If8e35)
  • נוסף ממשק ה-API של FocusManager.moveFocus() כדי להעביר את המיקוד באופן פרוגרמטי. (I045cb, b/177681839)
  • משנה את PopupPositionProvider כדי להשתמש בקואורדינטות יחסיות לחלון, ולא בקואורדינטות גלובליות. משנה את השם של הורהGlobalBounds ל-עוגן, ומשנה את windowGlobalBounds ל-windowSize: IntSize (I2994a)
  • משך הזמן וזמן הפעולה התקינה יוחלפו באלפיות שנייה ארוכות, והשלב הזה מסיר את התלות בקלט של מצביע העכבר הסוגים. (Ia33b2, b/175142755, b/177420019)
  • השדה AmbientSavedStateRegistryOwner נוסף באופן דומה ל-AmbientLifecycleOwner ול-AmbientViewModelStoreOwner (I9a3e8, b/176756365)
  • גרפיקה וקטורית מעודכנת API לתמיכה בניתוח גוון מיושם ברמה הבסיסית (root) של גרפיקה וקטורית. (Id9d53, b/177210509)
  • נוסף ToolType ל-PointerInputChange כדי להבדיל בין מכשירים (Iac787, b/175142755)
  • השם של AmbientWindowManager השתנה ל-AmbientWindowInfo (I2686a, b/177084714, b/177084983)
  • שיטות קואורדינטות גלובליות שהוצאו משימוש ונוצרו שיטות חדשות לקואורדינטות מבוססות-חלון. (Iee284)
  • נוספה האפשרות Modifier.toolingGraphicsLayer שמוסיף תכונת שינוי של שכבת הגרפיקה כשהבדיקה מופעלת. (I315df)
  • הפוקוסRequester.createRefs מסומן עכשיו כניסיוני, ועשוי להשתנות. (I2d898, b/177000821)
  • השם של SemanticsPropertyReceiver.סתר השתנה ל-invisibleToUser ומסומן כ- @trialComposeUiApi. השם של AccessibilityRangeInfo השתנה ל-ProgressBarRangeInfo. השם של stateDescriptionRange השתנה ל-ProgressBarRangeInfo. השם של AccessibilityScrollState השתנה ל- ScrollAxisRange. השם של EuropeanAccessibilityScrollState השתנה ל-EuropeanScrollAxisRange. השם האנכי של AccessibilityScrollState השתנה ל-verticalScrollAxisRange. (Id3148)
  • בוצעה הסרה של PointerInputData ובוצעה שינוי ב-PointerInputChange כדי לתת לו את כל השדות של PointerInputData. האירוע PointerInputEvent ו-PointerInputEventData פנימיים כי לא נעשה בהם שימוש ב- כל ממשק API ציבורי. (Ifff97, b/175142755)
  • הטמעה מעודכנת של GraphicsLayerScope בצפיפות שתתמוך בהמרות של dp פיקסלים גולמיים. (Ied528, b/176819695)
  • ה-API של Matrix עודכן כך שיתווסף לשורה הבאה סדר עיקרי ומספק קבועי אינדקס להשגת המרות בין ייצוגים של מטריצות להתאמה ל-framework לוגיקת ההמרה בין SkMatrix לבין Matrix4 באופן פנימי. (I432e6)
  • הוסרה שיטות מונוtonicFrameAnimationClockOf (Ib753f, b/170708374)
  • העברת String.fintPrecedingBreak ו-String.fingFollowBreak אל InternalTextApi. (I657c4)
  • בוצעה הסרה של androidx.compose.ui.util.isSurrogatePair מ-API ציבורי. (Ia9494)
  • השם של TransformedText.transTransformText השתנה ל-TransformedText.text
    • TransformedText כבר לא סיווג נתונים (Ie672a)
  • הסרת את data class מהכיתות הבאות:
    • InlineTextContent
    • LocaleList (I605c7)
  • המחלקות הבאות הן כבר לא מחלקות נתונים:
    • מחרוזת עם הערות
    • ParagraphStyle
    • סגנון סקין
    • TextStyle
    • משקל הגופן
    • עיטור טקסט
    • טקסט גיאומטרי טרנספורמציה
    • אינדקס טקסט
    • תוצאת TextLayoutresult
    • TextLayoutInput (Iaff99)
  • טרנספורמציה חזותית שונתה כממשק פונקציונלי (I3bba4)
  • נוסף סוג פרמטר של הפניה לפונקציה (I5e1bd)
  • הוספת גבולות שעברו טרנספורמציה ל-InspectorNode (Ice42f)

תיקוני באגים

  • onCommit , onDispose ו-onActive הוצאו משימוש לטובת ממשקי API של Side Effects ו-Sdisposable Effects (If760e).
  • שינויים בפונקציות היצרן של גופן/גופנים/משפחת גופנים

    • נוספו פונקציות יצרן שמתחילות באות גדולה
    • פונקציות קודמות שהוצאו משימוש עם אותיות קטנות האות הראשונה
    • פונקציות חדשות במפעל מחזירות את ה-FontFamily במקום מחלקות משנה
    • הסתירו בנאים של מחלקות המשנה, כדי שיוכלו יש לבנות אותן רק באמצעות תכונות של היצרן.
    • השם של Font.asFontFamily השתנה ל-Font.toFontFamily (I42aa7)
  • הצגה של ComposeContentTestRule, נמשך ComposeTestRule ומגדיר את setContent, שהוסר מ: ComposeTestRule. נוספה שיטה להגדרות המקוריות createEmptyComposeRule() שמחזירה ComposeTestRule ולא מפעילה פעילות עבור את/ה. השתמשו בפלח הזה כשתרצו להפעיל את הפעילות שלכם במהלך הבדיקה. לדוגמה באמצעות ActivityScenario.launch (I9d782, b/174472899)

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

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

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

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

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

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

    • הסרת את initial מהפרמטרים של constructor ב-EditorBuffer. (I326d5)
  • inverify ו-CompositionReference() הוצאו משימוש לטובת currentRecomposeScope ו-MemoryCompositionReference בהתאמה. (I583a8)

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

  • remindObserver מחליף את CompositionLifecycleObserver ו-CompositionLifecycleObserver הוצא משימוש.

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

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

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

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

  • התכונות ScrollableColumn/Row הוצאו משימוש. השימוש ב- ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn כשיש תוכן גלילה גדול מכיוון שב-LazyColumn אנחנו יכולים להרכיב, למדוד/לצייר רק רכיבים גלויים. כדי למנוע ממשתמשים לעבור את הדרך הלא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו- ScrollableRow ולקדם את השימושים ב-LazyColumn וב-LazyRow. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות המושהית ולהשתמש בערכי הצירוף ישירות באופן הבא: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • שיטת מפעל חדשה 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.Default במקום ב-ImeAction.Unspecified (Ie1bcc)
  • להיעזר ב-TestCoroutineDispatcher בבדיקות (I532b6)

  • השם של TextInputService.onStateUpdated כ-updateState (Id4853)

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

שינויים ב-API

  • נוסף Modifier.focusOrder() שניתן להשתמש בו כדי לציין סדר מעבר מיקוד מותאם אישית (I90cf5, b/175899543, b/170155556, b/170155429)
  • הוסרו במקום זאת השימוש ב-FocusObserver שהוצא משימוש ב-FocusChanged או ב-onFocusEvent (I3ecb9, b/175156387)
  • עריכת השינויים ב-API של פעולות
    • שם הפעולה השתנה כ-EditCommand
    • נוספה סיומת Command להטמעות בטון של EditOperation
    • פקודות EditCommand הן כבר לא מחלקות נתונים
    • השם של פונקציית EditOperation.Process שונה ל-ApplyTo
    • השם של קלטEventListener שונה ל-inputEventCallback
    • (I0a366)
  • הוסרו PxSquared, PxCubed, PxInverse שלא נעשה בהם שימוש. size.center() השתנה ועכשיו הוא נכס. (I973f7)
  • עכשיו המודול ui-test יוכל להגדיר יצירה של יוצרים מחדשים לממשקי משתמש בבדיקה (Ibebd8)
  • מהירות ששונתה כך שתכלול חלקים של רכיבים ונתונים מתמטיים ב-AI. (Ib0447)
  • שינינו את השם של @ExperimentalTesting ועכשיו הוא @ExperimentalTestApi תואם להערות דומות של ה-API הניסיוני (Ia4502, b/171464963)
  • השם של Color.useOrElse() השתנה ל-Color.takeOrElse() (Ifdcf5)
  • הוסרו המחלקות DpInverse, DpSquared ו-DpCubed שלא נמצאות בשימוש. (I4d62b)
  • השם של Constraints#satisfiedBy השתנה ל-isSatisfiedBy. I9cf5c
  • הוספת קריאה חוזרת (callback) כדי להודיע לבעלים כשגבולות הפריסה משתנים. (I72fd1)
  • נוסף isSpecified, isUnspecified, ו-useOrElse עבור מחלקות מוטבעות עם קבוע לא מוגדר. (I93f7b, b/174310811)
  • הרחבת ממשקי ה-API של [Abstract]ComposeView כדי לאפשר מיחזור תצוגות שמבוססות על הרכבה, תוך השמטת ההרכב שלהן כדי ליצור מחדש מאוחר יותר. הוספת ממשקי API להתקנה וגילוי של מלחינים בהיקף חלון ו-CompositionReferences ליצירת יצירות צאצא.

    הוספה של אסטרטגיית תצוגה-הרכבה להגדרת סילוק של הרכבה האסטרטגיה של [Abstract]ComposeViews; התנהגות ברירת מחדל מושלכת ניתוק חלון. (I860ab)

  • ה-API הציבורי של Any.identityHashCode() הוסר (I025d7)

  • הוסר toStringAsFixed API לטובת השימוש ב-String.format במקום זאת ישירות. (Iaba6b)

  • הוספת לחצן החלפת מצב למחרוזת Strings.kt (I4a5b7, b/172366489)

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

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

  • בוצעה הצגה של SelectionRegistrar.notifySelectableChange כדי לשלוח הודעה אל SelectionManager על עדכונים שניתן לבחור. (I6ff30, b/173215242)

  • אנחנו שמחים להציג את Outline.bounds כדי לקבל את המלבן התוחם להטמעות שונות ב-Outline. (I16e74, b/175093504)

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

  • ImeOptions ו- KeyboardOptions כבר לא סוג נתונים (I3c898, b/168684531)

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

    • השם של OffsetMap שונה ל-OffsetMapping
    • השם של OffsetMapping.identityOffsetMap ל-OffsetMapping.Identity השתנה
    • טרנספורמציה של סיסמה היא כבר לא סיווג נתונים
    • בוצעה העברה של OffsetMapping לקובץ נפרד
    • (I0bdf3)
  • המיקום השתנה ל-DpOffset והסרת את getDestination() (Ib2dfd)

  • שינית את Dp.isFinite() ל-val Dp.isFinite (I50e00)

תיקוני באגים

  • עכשיו יוצר מחדש חושף את הזרימה במצב הנוכחי שלו, ומאפשר לעקוב אחרי הפעילות שלו ואחר הפעילות של ההשפעות הקשורות אליו. (Ifb2b9)
  • עכשיו ניתן לגשת ל-keyEvent המקורי דרך keyEvent.nativeKeyEvent (I87c57, b/173086397)
  • animate() מוחלף עכשיו ב-animateAsState(), שתחזיר State<T> במקום T. כך אפשר לשפר של הביצועים, כי אפשר לצמצם את היקף הפסילה שבו נקרא ערך State (מדינה). (Ib179e)
  • הוספת ה-API של תפקיד סמנטי ומוסיפים את התפקיד 'תפקיד' כפרמטר אל SemanticsModifier ניתן ללחיצה, לבחירה ולהחלפת מצב. בוצע שינוי Modifier.progressSemantics כדי שגם Slider יוכל להשתמש בו. (I216cd)
  • API חדש מבוסס קורוטין Animatable שמבטיח בלעדיות הדדית בין האנימציות שבו.
    • מפרט חדש של DecayAnimationSpec לתמיכה באנימציה רב-מימדית של דעיכה
    • (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 וגם headPointerInput() ל-awaitPointerEventScope(). (Idf0a1, b/175142755)
  • הכלי למילוי אוטומטי הוא עכשיו API ניסיוני ומחייב הסכמה (I0a1ec)
  • הוספת הצהרות הרסניות ליצירת מכונות FocuSRequester (I35d84, b/174817008)
  • השם של AccessibilityLabel השתנה ל-contentDescription. השם של AccessibilityValue השתנה ל-stateDescription. (I250f2)
  • אירועים מותאמים אישית הוסרו מה-API של קלט מצביע מושעה (Ia54d5, b/175142755)
  • הוספת מספר פונקציות חדשות ב- SelectionRegistrar, ושינוי השם של onPositionChange ל-NotifyPositionChange. (Ifbaf7)
  • יותר חברים ב-LayoutNode סימנו כפנימי (I443c6)
  • LayoutInfo נוסף לשימוש בכלים ובבדיקות (I9b190)
  • AndroidOwner שנוצר לשימוש פנימי (Ibcad0, b/170296980)
  • הוסרה הערה ניסיונית PointerInput (Ia7a24)
  • נוספה מערכת גלילה מקוננת. פרטים נוספים זמינים ב-Modifier.nestedScroll (I36e15, b/162408885)
  • subcomposeInto(LayoutNode) בוצע פנימי (Id724a)
  • הממשק של Applier השתנה כדי לפשט את הממשק עצים מלמטה למעלה במקום מלמעלה למטה.

    השם של ה-method insert() השתנה ל-insertTopDown().

    נוספה שיטה חדשה, insertBottomUp().

    המיישם מוסיף צמתים לעץ שהוא עורך באמצעות insertTopDown() או insertBottomUp(), בהתאם עם ביצועים טובים יותר.

    יש עצים, כמו LayoutNode ו-View, בגובה רב יותר יעיל לבנות מלמטה למעלה מאשר מלמעלה למטה. לפני השינוי הזה, נדרשה ערימה של תוספות כדי להטמיע היה צורך להעתיק לכל אפליקציה שבה נדרש מלמטה למעלה לשיפור הביצועים. לאחר השינוי הזה, Applier מבטל את insertBottomUp() כדי לבנות עץ מלמטה למעלה insertTopDown() כדי לבנות את העץ מלמעלה-למטה. (Icbdc2)

  • נוספו המאפיינים CloseOnBackClick ו-CloseOnClickOutside ל-AndroidDialogProperties. ההגדרות האלה מאפשרות להגדיר מתי תופעל onDismissRequest lambda בתיבת הדו-שיח. (If5e17)

  • נוסף PainterResource API כדי לטפל באובייקטים של צבע עם טעינה אטומה מכל אחד מהפורמטים של נכסים דיגיטליים שעברו רסטר (כמו קובצי PNG) או VectorDrawables. לצרכנים כבר אין כדי לקבוע מראש את סוג הנכס והם יכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter. לשימוש בתכנים קומפוזביליים של תמונות או בכלים לשינוי צבעים. (I2c703, b/173818471)

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

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

  • שימוש בממשק ה-API של גרפיקה מסוג Path Effects כדי לספק דפוסים שונים לצורות עם קווי רצף. שימוש ב-NativePathPath שהוצא משימוש לטובתך של תחזית/יישום בפועל של Path Effects. (I5e976, b/171072166)

  • נוספו ממשקי IdlingResource לכתיבה, בתור Compose (כתיבה) שנתמכת במשאבי Espresso של Espresso. אפשר לרשום אותם ללא רישום דרך ComposeTestRule (I433f3)

  • הוסרה רישום גלובלי (un) של ComposeIdlingResource וגם ערך גלובלי (un)רישום של שעונים ל-ComposeIdlingResource (I32660)

תיקוני באגים

  • רכיבי Lambda בשינויי היסט עכשיו מחזירים IntOffset במקום Float. (Ic9ee5, b/174137212, b/174146755)
  • הוסרו OAuthTable, SlotReader ו- OAuthWriter מה-API הציבורי. האירועים האלה סומנו בתור InternalComposeAPI בעבר. עכשיו הם פנימיים למודול הכתיבה.

    CompositionData ו-CompositionGroup נוספו בתור מחליף את ui-tooling API שישמש לחילוץ מידע על היצירה. הקישורים האלה ציבוריים, אבל הם לא מיועד לשימוש מחוץ ל-ui-tooling API, כי הוא מספק המידע הגולמי שה-ui-tooling API מפרש (I31a9c)

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

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

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

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

  • נוספה פונקציה במפעל של buildAnnotatedString לפי הסדר כדי ליצור מחרוזת AnnotatedString. NotedString (מחרוזת הערות) שהוצא משימוש ב-builder. (Idfe0b)

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

גרסה 1.0.0-alpha08

2 בדצמבר, 2020

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

שינויים ב-API

  • הוספת פעולה מסוג semantics Dismiss (I2b706)
  • ממשקי ה-API של DrawModifier הועברו מ חבילת androidx.compose.ui חבילת androidx.compose.ui.draw. נוצר קובץ DrawModifierexcept.kt של כולל טיפוסים או שיטות עזרה שעוזרות את המיגרציה מההוצאה משימוש לגרסה הנוכחית ממשקי API. (Id6044, b/173834241)
  • השם של Modifier.drawLayer השתנה ל-Modifier.graphicsLayer עודכנו גם מחלקות קשורות ל- GraphicsLayer בהתאם משוב מה-API. (I0bd29, b/173834241)
  • נוספו שיטות חדשות Placeable.placeWithLayer() ו-placeable.placeגלויWithLayer() , שמאפשרות לפריסות בהתאמה אישית ולמגבילי פריסה להציב צאצא עם שכבת גרפיקה לשרטוט. מכיוון שאנחנו יכולים קודם לבצע אופטימיזציה של שרטוטים, כך כשאנחנו צריכים להעביר ילד אנחנו לא צריכים לשנות את התוכן שלו, אנחנו יכולים להחיל טרנספורמציות שרטוט על הילד או הילדה (Ibd8f6, b/170296989, b/171493718, b/173030831)
  • בוצעה הסרה של <T> מההצהרה של SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8)
  • נוסף Modifier.scale// ממשקי API שמשמשים כנוחות ל-DrawLayer.
    • השם החדש של Modifier.drawOpacity הוא Modifier.alpha
    • השם של Modifier.drawShadow שונה ל-Modifier.shadow (I264ca, b/173208140)
  • ביצעו את זמן הפעולה התקינה של PointerInputData שדות המיקום אינם בני null. (Id468a)
  • העיצוב MaterialTheme מגדיר עכשיו את הצבעים הנכונים עבור נקודות אחיזה שנבחרו ורקע בחירה. אפליקציות שהן לא מהותיות יכולות להשתמש באופן ידני ב-AmbientTextSelectionColors כדי להתאים אישית את הצבעים שנבחרו. (I1e6f4, b/139320372, b/139320907)
  • נוסף windowManager.isWindowFocused כדי לבדוק אם חלון המארח בפוקוס, ו-WindowFocusObserver שמספק קריאה חוזרת onWindowFocusChanged. (I53b2a, b/170932874)
  • API מעודכן של TransformOrigin API שיש לו תחביר הרסני ומחזיר pivotFractionX ו-pivotFractionY בתור component1 ו-component2 (If43c4, b/173586560)
  • נוספה בדיקת איתור שגיאות בקוד (lint) בשביל שמות ומיקום של פרמטרים קומפוזביליים של lambda, כדי לבדוק אם יש עקביות להנחיות לכתיבה. בנוסף, חלק מממשקי ה-API הועברו בעזרת children כשם של lambda בסוף, ל-content, בהתאם לבדיקת השגיאות בקוד ולהנחיות. (Iec48e)
  • נוסף API כדי לבדוק אם בוצעה לחיצה על מקשי הצירוף Alt, Ctrl, Meta או Shift בזמן שנשלח אירוע מרכזי. (I50ed9)
  • נוסף עומס יתר חדש של Modifier.drawLayer(). היא לוקחת בלוק lambda ב- GraphicsLayerScope חדש שבו אתם מגדירים את הפרמטרים של השכבה באופן שמאפשר לדלג על הרכבה מחדש ועל העברה בממסר כשמתרחש שינוי מצב. DrawLayerModifier הוא עכשיו פתרון פנימי כחלק מההכנה להעברת הלוגיקה שלו אל שיטת Placeable.placeWithLayer() של LayoutModifier (I15e9f, b/173030831)
  • אלמנטים של אווירה שהוצאו משימוש, שהשם שלהם הוא Ambient, והוחלפו במאפיינים חדשים עם קידומת Ambient, שעומדים בהנחיות נוספות של Ambients ו-Compose API. (I33440)
  • הטווח androidx.compose.ui.text.Typeface הועבר אל androidx.compose.ui.text.font.Typeface (Ic2b81)
  • השם של הארגומנטים הסמנטיים מ-MergeAllDescendants השתנה ל- MergeDescendants. (Ib6250)
  • מצביע השעיה חדש של מזהה תנועת גרירה API לקלט, כולל נעילת כיוון. (Icef25)
  • השם של VectorAsset השתנה ל-ImageVector התפקיד VectorAsset הועבר ונקרא עכשיו Builder to Builder אל להיות מחלקה פנימית של ImageVector, הנחיות ל-API. נוספו גופנים של VectorAssetBuilder אל קישור אל ImageVector.Builder לצורך תאימות. (Icfdc8)
  • השם של ImageAsset השתנה וגם שיטות שקשורות ל-ImageBitmap. (Ia2d99)
  • צריך להוסיף את הפרמטר zIndex ל-placeScope (של מיקום) כדי ש-Modifier.zIndex() יפעל עכשיו בתור LayoutModifier, וכל פריסה מותאמת אישית תוכל להגדיר zIndexes לילדים ישירות מתוך גוש מיקומי המודעות (I711f7, b/171493718)
  • מאפייני סמנטיקה של יסודות הועברו ל-ui (I6f05c)
  • יש להוציא משימוש את המקום(היסט) והמקום היחסי(קיזוז). במקום זאת, משתמשים בעומסי יתר עם היסט פנימי (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)
  • הצגה של SweepGradientShader ו-SweepGradientBrush API. (Ia22c1)
  • בקרת הזמן בבדיקות (TestAnimationClock והשימושים בה) היא עכשיו ניסיוני (I6ef86, b/171378521)
  • הוספת ממשקי API לגלילה המבוססים על קורוטין:

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

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

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

  • עכשיו אפשר לאשר את הפעילות בהתאמה אישית ב-AndroidComposeTestRule מרכזי אפליקציות (Ib8288, b/153623653, b/154135019)

  • TextLayout בטעינה.getLineViewEnd הוצא משימוש. כתחליף TextLayoutתוצאה.getLineEnd להחלפה, יש עכשיו פרמטר visibleEnd חדש. (I73282)

  • ממשק API של TextFieldValue מעודכן

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

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

תיקוני באגים

  • השם של פרמטר היישור של Box השתנה ל-contentrement. (I2c957)
  • שמות המשנים של offsetPx השתנו כדי לקזז. עכשיו הם מקבלים פרמטרים מסוג lambda במקום State. (Ic3021, b/173594846)
  • נוסף הפרמטר resetInput ל-TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
  • נוספה בדיקת שגיאות בקוד לפרמטרים של מגביל בפונקציות קומפוזביליות. במהלך בדיקת השגיאות בקוד, המערכת בודקת את השם, סוג ההחזרה, ערך ברירת המחדל והסדר של הפרמטר כדי לוודא שהוא עומד בהנחיות לכתיבה. (If493b)
  • האפשרות נוספה באופן זמני כדי לאפשר את TestAnimationClock מונע על ידי MonotonicFrameClock (I1403b, b/173402197)
  • נוסף wrapper של Android ב-Android. אפשר לטעון מכשיר Android משפחת גופנים באמצעות הפונקציה typeface, כלומר typeface(Typeface.DEFAULT). גם השם typefaceFromFontFamily() השתנה ל-typeface() (I52ab7)
  • נוספה בדיקת שגיאות בקוד כדי לבדוק שהפונקציות של יצרן הצירוף מוגדרות כתוספים ב-Modifier, כדי שניתן יהיה לשרשר אותן באופן רציף. (I07981)
  • מסירים את המודול הישן של בדיקת ה-ui-test ואת התוספת שלו (I3a7cb)
  • Recomposer כבר לא מקבל EmbeddingContext; חובה יחסי תלות של תזמון מתקבלים מה-ImpactCoroutineContext. FrameManager הוצא משימוש; שילובי הפלטפורמה צריכים לאתחל איך להתמודד עם תמונת מצב גלובלית. (I02369)
  • העברת פרטי סגנון לצומת הנגישות. (If5e8d)
  • השם של TextUnit.Inherit השתנה ל-TextUnit.לא צוינה עקביות עם יחידות אחרות. (Ifce19)

כתיבת גרסה 1.0.0-alpha07 של ממשק המשתמש

11 בנובמבר 2020

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

שינויים ב-API

  • הצגה של ScaleFactor מחלקה מוטבעת, לייצוג קנה מידה גורמים אופקיים ואנכיים צירים שאינם תלויים זה בזה לפי הסדר כדי לתמוך בתרחישים לא אחידים של התאמה לעומס (scaling).
    • נוספה שיטת computeScaleFactor אל קנה מידה של תוכן
    • נוסף ContentScale.FillBounds כדי לבצע קנה מידה לא אחיד כדי למתוח את הקטע גבולות לתפוס את היעד במלואו.
    • נוספו שיטות של אופרטורים למחשוב פרמטרים של ScaleFactor עם פרמטרים של גודל.
    • (Ic96a6, b/172291582)
  • נוספו מפעלי Biasיישור ו-BisAbsoluteutement לצורך יצירת יישורים. (Iac836, b/169406772)
  • צריך לאפשר למפתח לנקות את המיקוד בכוח. I90372
  • תוקן באג שגרם לשרטוט של גובה מעל לתצוגות בתוך 'כתיבה'. (If7782)
  • נוצר onDrawBehind API בתוך ContentDrawScope כדי להתאים למוסכמות מתן השמות עם Modifier.drawBehind. (I4fc3a, b/171955269)
  • הוספת תמיכה במרחק המצלמה כדי להשלים טרנספורמציות בתלת-ממד rotationX/rotationY בממשקי API של שכבות. (I40213, b/171492100)
  • נוסף SelectionContainer ללא הקריאה החוזרת (Ibfadb)
  • הוסרה הערה ניסיונית SubcomposeLayoutApi עכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף @OptIn (I708ad)
  • FirstBaseline ו-LastBaseline הועברו לחבילת androidx.compose.ui.layout (Ied2e7)
  • הוסרה מידת האטימות ממגביל ה- DreatShadow() כפי שהיא מבלבל. (I82c62, b/171624638)
  • הכלי Measurement result הוסר מ-MeasureScope. (Ibf96d, b/171184002)
  • כמה סמלים שקשורים לפריסה הועברו מ-androidx.compose.ui ל-androidx.compose.layout.ui. (I0fa98, b/170475424)
  • הוסר FocusState2 שהוצא משימוש (I686cb, b/168686446)
  • ZIndexModifier הוא פנימי עכשיו (I1808b, b/171493718)
  • עודכן סוג ההחזרה של lerp שיטה להחזרת פרמטרים של מידה גודל שאינו null כדי להימנע באגרוף. (Ib0044)
  • נוספה TestMonotonicFrameClock לבדיקת קוד המסתמך על הרכב MonotonicFrameClock להמתנה לאירועי מסגרת יצירה באמצעות runblockTest של kotlinx-coroutines-test (I4402f)
  • הוסר PathScope.localToGlobal (I15299, b/171462785)
  • נוסף מאתר onAllNodesWithSubstring (I81dd7, b/171462889)
  • מודול androidx.ui.test הוצא משימוש. מעבר אל androidx.compose.ui.test and androidx.compose.ui.test.junit4 (I452e8)

תיקוני באגים

  • collectedToBitmap הועבר ל- captureToImage. (I86385)
  • Foundation.Text הוצא משימוש והוחלף ב-material.Text. בכתובת androidx.compose.foundation.BasicText. (If64cb)
  • צריך לעדכן את TextFields כדי לקבל את השימוש ב- KeyboardOptions (Ida7f3)
  • שינוי השם של KeyboardOptions ל-ImeOptions (I82f36)
  • KeyType ו-ImeAction הועברו אל KeyboardOptions (I910ce)
  • הפרמטר ProvideDefault נוסף כחלופה ליצירת אווירה, ואפשר להשתמש בו כדי לציין ערכי אווירה שיוגדרו רק כשלא סופקו כבר ערך סביבתי. (Id6635, b/171024925)
  • BaseTextField הוצא משימוש. במקומו צריך להשתמש ב-BasicTextField. (I896eb)
  • הצגה של מודול ui-test-junit4 (Ib91f8)
  • השם של relativePaddingFrom שונה ל-paddingFrom. הוספנו את מקש הצירוף paddingFromBaseline כדי שיהיה נוח יותר לציין מרחקים מגבולות הפריסה לקווי טקסט בסיסיים. (I0440a, b/170633813)
  • השם של LaunchedTask השתנה ל-LaunchedImpact כדי לשמור על עקביות בשילוב עם ממשקי ה-API של Side Effects ו-Seposable Effects. הופעל ללא אין להשתמש בפרמטרים של נושא כדי לעודד שיטות מומלצות. (Ifd3d4)
  • הוכנסו משאבים קומפוזביליים שמרכיבים מחדש את התוכן שלהם כשהתצורה מתעדכנת. (I6387c, b/167352819)
  • Recomposer עכשיו דורש CoroutineContext בזמן הבנייה (Ic4610)
  • סיכום של zIndex ערכים כאשר מוחלים מספר ערכים של Modifier.zIndex(). בעבר המשחק הראשון ניצח. (Ic514c, b/170623936)
  • שינויים בהטמעה הפנימית של OAuthTable לא אמורה להשפיע על ה-API הציבורי. (If9828)
  • נוספה אפשרות IME לתיקון אוטומטי במקלדת (I57b8d)
  • androidx.ui.test שהועברו אל androidx.compose.ui.test (I9ffdb)
  • בוצעה הסרה של KeyboardOptions.toImeOptions מ-API הציבורי. (Ic2e45)

תרומה חיצונית

  • הפרסום של פריט המידע הפנימי של ארטיפקט 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 ו הורה מסוג קומפוזיציה. עכשיו, פחות מקומות נדרשים להשתמש בכלי Recomposer ספציפי. (I4036f)
  • הוצאה משימוש של VectorPainter ב- מעדיפים להיזכר ב-VectorPainter לציין שה-API הקומפוזבילי באופן פנימי משתמשת ב'זכור' לשמירת נתונים לאורך של יצירות. (Ifda43)
  • ממשק API מעודכן של Modifier.drawWithCache כדי לחשוף את ContentDrawScope כהיקף של מקלט במקום DrawScope כדי לספק של יכולת לסדר מחדש פקודות של שרטוט. זה שימושי למיזוג או של צביעת תרחישים לדוגמה שבהם פיקסלים של תוכן חייבים חייב להיות מוצג ראשון כדי שיהיה כדי ליישם נכון את האלגוריתם של מצב השילוב. (Ie7ec8)
  • העברת SimpleContainer אל PopupTestUtils.kt (I78c57)
  • ConsumedData הוא כבר לא סיווג נתונים. פרטים נוספים זמינים בכתובת https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f)
  • תיקון המיקום של נקודת אחיזה Rtl. I6e1e0
  • ארגון מחדש של היקף השרטוט, ContentDrawScope לשימוש בממשקים במקום בשיעורים מופשטים
    • נוצרה הטמעת CanvasDrawScope של DrawScope
    • הטמעות מחדש של DrawScope כדי להשתמש במקום זאת ב-CanvasScope
    • נוצר DrawContext כדי לכווץ יחסי תלות עבור DrawScope
    • הוסרו שיטות שהוצאו משימוש ב-DrawScope (I56f5e)
  • שינוי חמור: הסרת הערך המוחזר מ-PointerInputFilter.onPointerEvent(...) כי הערך היחיד שאפשר לשנות באירועי מצביע הוא נתוני צריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...), עכשיו אפשר פשוט לשנות את נתוני הצריכה של ה-PointerEvents שהועברו. (I6acd0)
  • יצרנו את הממשקים MeasureScope ו-IntrinsicMeasureScope. (I1a087, b/170461665)
  • פונקציית המיזוג של ApplyLine הוסתרה. (I9da1a, b/170612900, b/170611568)
  • הוספת יכולת לציין את פרטי המפקח בתכונת צירוף כתב (Idee08, b/163494569)
  • האפשרות SelectAll נוספה לתפריט הבחירה (Ief02b)
  • עודכן ב-DawTransform.רוט כדי לקחת פרמטר ברירת מחדל של ציר מרכזי להתאמה את התיעוד.
    • עודכן ב-DawScope.ROad כדי לצרוך היסט עבור הפונקציה נקודת ציר כדי להתאים שיטות טרנספורמציה אחרות.
    • עומס יתר של DrawScope.RTRad שהוצא משימוש צף עבור הקואורדינטה x ו-y של הציר.
    • (Iffcbb, b/170434992)

תיקוני באגים

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

תרומה חיצונית

  • תמיכה בלוקאלים שונים של 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)
  • מעבירים לחיצה ארוכה לטקסט. (Iff2bc)
  • מגביל קלט מושהה ניסיוני Modifier.pointerInput (Ia77d2)
  • נוספו פעולות העתקה/הדבקה/חיתוך (I6db4f)
  • הוסר ה-constructor הציבורי של AndroidOwner (Iacaef)
  • מעכשיו, חלונות קופצים ותיבות דו-שיח יורשים את FLAG_SECURE מחלון ההורה. נוספה גם אפשרות להגדיר את זה באופן מפורש (I64966, b/143778148, b/143778149)
  • עכשיו אפשר לשנות את נתוני הצריכה. וגם קריאות לפונקציות של תוספים שצורכות לא יחזיר עוד PointerInputChange חדש, אבל במקום זאת לשנות את PointerInputChange שמסופק.

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

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

  • נוצרה ב-GloballyPositioned פונקציה מוטבעת (I15830)

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

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

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

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

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

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

  • TextOverflow.None. כאשר האפשרויות הנוספות הן 'ללא', הטקסט לא יטפל יותר בגלישה וידווח על הגודל שלו בפועל ל-LayoutNode. (I175c9, b/158830170)

  • השם של פרמטר ההיקף ב-AnnotatedString.Builder.addStringAnnotation השתנה ל'תג' כדי לשמור על עקביות של API. (I7c8cb)

תיקוני באגים

  • ביצועי הגלילה של LazyColumn/Line משופרים על ידי צמצום העבודה בשיטת המשנה בכל גלילה. ה-method החדש has Invalidations() נוספה למחלקה Composition. השם של המתודה hasPendingChanges() מ-Recomposer השתנה ל-hasUndoations() (Ib2f32, b/168293643, b/167972292, b/165028371)
  • גודל מעודכן.לא צוין ל-Float.NaN במקום מספר ממשי (Float).POSITIVE_INFINITY. יישומים של 'צייר' עודכנו ל- בידקו ביחס ל'גודל'. גם לא צוין כגדלים לא סופיים. (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

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

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

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

  • לא ניתן יותר לקרוא אתLocationScope#parentwidth ו-PositionScope#parentLayoutDirection של הבלוק של מיקומי המודעות של הפריסה המותאמת אישית. (Icc1ae, b/168295623)

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

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

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

תיקוני באגים

  • עודכנו ממשקי API לגרפיקה רבים
    • קנה המידה והסיבוב עודכנו של ממשקי API לטרנספורמציה כדי לצרוך פרמטר הסטה לייצוג הציר קואורדינטות במקום מספר ממשי (float) נפרד לקואורדינטות של ה-x/y DawScope ו-DawTransform
    • הוסרו Rect.expandToInclude ו-Rect.join הוסרו אמצעי תשלום
    • תיעוד הרדיוס עודכן ועכשיו הוא אובלי בנוסף למכשיר אליפטי
    • נוסף תיעוד כדי לציין מבנה ציבורי של הרדיוס המוטבע לא ניתן להתקשר ישירות לכיתה, אלא יש ליצור אובייקטים מסוג רדיוס באמצעות את בונה הפונקציות שלהם
    • הוסרו ממשקי ה-API של RoundRect להרצת שאילתה topRight, belowRight, belowCenter וכו'.
    • Rect.shift הוצא משימוש לטובת Rect.Translate
    • ממשקי ה-API של RoundRect.grow ו-Rect.shrink הוסרו
    • השם של RoundRect.outerRect השתנה ל-Rect.boundingRect
    • הוסר: RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
    • השם של RoundRect.longestSide השתנה ל-RroundRect.maxMetric
    • השם של RoundRect.shortestSide השתנה ל-RroundRect.min קובצי
    • בוצע שינוי של RoundRect.center כנכס במקום לפונקציה
    • עדכן את constructor של RoundRect כדי לצרוך מאפייני רדיוס במקום פרמטרים בודדים לערכי רדיוס של x/y
    • הוסרו ממשקי ה-API של 'גודל' שהניחו שמדובר במלבן עם המקור ב-0,0
    • נוסף לרדיוס ממשק API השמדה
    • פונקציות שונות של תוספים מסוג RoundRect הועברו נכסים במקום זאת
    • (I8f5c7, b/168762961)
  • Foundation.Box הוצא משימוש. במקומם צריך להשתמש ב- הטעינה הקמפיין base.layout.Box. (Ie5950, b/167680279)
  • שם המקבץ השתנה ל-Box. התיבה החדשה (Box) הקודמת תוצא משימוש ותחליפ את Box החדש ב-Compose.foundation.layout. המבנה החדש של Box הוא מקבצים ילדים אחד על גבי השני, כאשר יש לו כמה בנים. ההבדל הזה שונה מאופן הפעולה של התיבה הקודמת, שהתנהגה כמו עמודה מסוג 'עמודה'. (I94893, b/167680279)
  • הפרמטרים לקישוט התיבות הוצאו משימוש. אם רוצים להוסיף קישוטים או מרווח פנימי לתיבה, אפשר להשתמש במקום זאת במגבילי התאמה (Modifier.background, Modifier.border, Modifier.שטח ) (Ibae92, b/167680279)
  • עודכנו ממשקי API לגרפיקה רבים
    • ממשקי ה-API של DrawScope עודכנו עם היקף ההרשאות שיטות טרנספורמציה כדי לציין מיושמת רק במסגרת הקריאה החוזרת (callback) והוסרה לאחר הפעלת הקריאה החוזרת
    • תיעוד מעודכן של ClatPath מתייחס ל'נתיב' במקום מלבן מעוגל
    • תוקן הריווח בתיעוד של הפרמטר הימני ב-ClipPath
    • השם של DrawScope.drawCanvas שונה ל-DockIntoCanvas ו הוסר פרמטר המידה
    • שינית את השם של הפרמטרים dx/dy בשיטת Inset ל- אופקי ואנכי
    • נוסף עומס יתר של הפניה שחוזרת על עצמה ערך פנימי לכל 4 הגבולות
    • התיעוד הוסר משיטת ההטמעה, שמציין כי את כניסת הפיסקה תחול על כל 4 הצלעות
    • תיעוד מעודכן לכיתת Rect
    • התגובות בפרמטרים של Rect עודכנו כך שיתאימו ל-kdoc בסגנון
    • הוסרו Rect.join ו-Rect.expandToInclude
    • נוצר עומס יתר עבור Rect.Translate(offset) ו- Rect.shift הוצא משימוש
    • (If086a, b/167737376)
  • RootAnimationClockworks, מעבריםEnabled, blinkingCursorEnabled ו-textInputService פעולה עם @visibilityForTesting, הופכים אותם ל-API פנימי ומסתירים את ה-kdoc שלהם (I554eb, b/168308412)
  • יש להסיר את SelectionContainer מהחלק העליון כדי להשבית את בחירת ברירת המחדל ולהימנע מהתנהגות לא צפויה. אפשר להשתמש באופן ספציפי ב-SelectContainer כדי לארוז את התוכן שצריך לבחור במקום זאת. (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)
  • הוסרו שיטות של אופרטורים לגבי 'גודל' ממשקי API שצורכים פרמטרים של Offset. לא ברורה תוצאה של הפעולות האלה וסוג התוצאה לא צפוי בנושא הזה. דוגמה: גודל צריך - קיזוז חזרה קיזוז או תוצאת גודל עם ההפרש?

    הוסרו גם שיטות שהוצאו משימוש ב'סיווג מידה'. (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)
  • שמות השימושים בכוח הכבידה שונו באופן עקבי כדי ליישר קו או ליישר קו בממשקי ה-API לפריסה. (I2421a, b/164077038)
  • נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule בתור הן הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)

גרסה 1.0.0-alpha02

2 בספטמבר 2020

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

שינויים ב-API

  • להסיר את הקריאה החוזרת (callback) כדי להודיע לבעלים כשגבולות הפריסה משתנים. (If654e, b/166106882)
  • נוספה תמיכה ב-filltype פרמטרים בנתיבים של גרפיקה וקטורית כדי לתמוך בגזירי צורות בהתאם בכללי מילוי נתיבים אפילו Odd או NonZero. (I43dd2)
  • Uptime ו-Velocity הם עכשיו מחלקות מוטבעות (I48f4a)
  • משך הזמן הוא עכשיו מחלקה בתוך השורה (I565eb)
  • הוספת קריאה חוזרת (callback) כדי להודיע לבעלים כשגבולות הפריסה משתנים. (Ic40b3)
  • תוקנה הבעיה ב-constructor של פונקציית Rect עם ההיסט והרדיוס, תיצור את המלבן סדר משמאל, ימין, למעלה, למטה במקום שמאל, למעלה, ימין, למטה.

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

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

תיקוני באגים

  • נוסף MutableRect, מלבן שניתן לשנות. (I71bd2, b/160140398)
  • המטריצה 4 הוחלפה ב-'מטריצה'. כל שאר החלקים הוסרו מחבילת הווקטורים. (Ibd665, b/160140398)
  • לפי המוסכמה של הקריאות לפונקציות קומפוזביליות השתנה. זהו שינוי תוכנה בינארית. כל הספריות חייבות להיות עברה הידור מחדש כדי לעבוד עם הגרסה הזו של הפלאגין מהדר (compiler) לכתיבה.

    השינוי הזה לא יוצר שינוי תוכנה שעלול לגרום לכשל ברמת המקור רק ממשקי 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 כדי לפטור תצוגות בתוך 'כתיבה'. הערה: בעתיד לא תהיה תמיכה ביצירת תצוגות מפורטות ו-ViewGroups באופן ישיר, אלא אם אלו עלים בעץ ההרכבה. במקרה כזה, אפשר יהיה לעשות זאת באמצעות AndroidView. (I29b1e, b/163871221)
  • FocusState2 הוצא משימוש והוחלף ב-FocusState (Ia8b79, b/160822876, b/160923332)
  • עומסי-היתר של AndroidView שהוצאו משימוש הוסרו. (I946b9, b/163802393)
  • עכשיו אנחנו יכולים להצהיר כי אחד או יותר מהקובעים של פליטת אנרגיה בהתאמה אישית אפשר לדלג על השלב הזה ולהרכיב אותו מחדש בנפרד מהפליטות. (Ibbd13)
  • מחלקות וקטורים שונו כך שלא יהיו יותר להיות סיווגי נתונים כמו אותו מופע אובייקט שמשמש ליצירה.

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

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

    בוצע עדכון של GroupComponent ו-PathComponent כדי ששדות השמות שלהם יהיו ניתנים לשינוי (Ieae45, b/151378808)

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

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

  • נוסף פרמטר מגביל ל-SelectContainer (I4aada, b/161487952)

  • הוסר FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)

  • נוספה lambda של mergePolicy אל SemanticsPropertyKey. סוג הפריט יכול להיות משמש להגדרת מדיניות מותאמת אישית לסמנטיקה של מיזוגAllDescendants מיזוג. מדיניות ברירת המחדל היא להשתמש בערך ההורה אם כבר קיים, אחרת ערך הצאצא. (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 משתמשת עכשיו ב-FflowRow עבור לחצנים (I00ec1, b/161809319, b/143682374)

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

  • ארגון מחדש של קלט הסמן (Ie3f45)

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

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

  • ל-KeyEvent יש מאפיין unicode שניתן להשתמש בו כדי לקבל את תו ה-Unicode שנוצר על ידי השילוב של מצב המפתח ומצב המטא-מפתח שצוינו (If3afc)

  • ביצע את האירוע המותאם אישית DelayUp ובמחלקות קשורות, ל-API להצטרפות, ישתנו מאוד. (I56d6f)

  • הוסרו 2 PointerEventPass שכבר לא זמינים הדרושים. (I3dd9d)

  • הוספת צבע פרמטר, צללית ו-TextDecoration ל-Paragraph. Paint. הפונקציה הזו שימושית למניעת שחזור מיותר של הפסקה. (I81689)

תיקוני באגים

  • הוסרו קריאות חוזרות של onFocusChanged מ-TextField. במקומו צריך להשתמש ב-Modifier.focusObserver. (I51089, b/161297615)
  • הממשק Modifier.drawBorder הוצא משימוש. במקומו צריך להשתמש ב-Modifier.border. סיווג נתוני הגבול הוחלף ב-BorderStroke (I4257d, b/158160576)
  • הוסרו קריאות ל-frameManager שהוצאו משימוש.

    ממשקי ה-API הפנימיים לכתיבה השתנו כדי לצמצם את כמות במבט-על כדי לעקוב אחרי אובייקטים במצב כמו 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 השתנה ל-RroundRect כך שיתאימו טוב יותר לדפוסי השמות של הכתיבה יצרתם בנאים של פונקציות דומות לפונקציית RRect שהוצאה משימוש constructors (I5d325)

גרסה 0.1.0-dev16

5 באוגוסט 2020

androidx.compose.ui:ui-*:0.1.0-dev16 משוחרר. גרסה 0.1.0-dev16 מכילה את ההתחייבויות האלה.

שינויים ב-API

  • ה-OnChildPositioned הוצא משימוש. שימוש ב-OnPositioned על הילד או הילדה. (I87f95, b/162109766)
  • ההגדרה setViewContent הוצאה משימוש. במקום זאת, צריך להשתמש ב-setContent. (I7e497, b/160335130)
  • הוספנו את AndroidViewBinding API לניפוח ולכתיבה של משאבי פריסה, על סמך ViewBinding. (I081c6)
  • KeyEvent2 הוחלף על ידי KeyEvent (I2d770, b/162097585)
  • נוספה תמיכה במפתח חומרה חלופי (I9036b)
  • ה-FocusManager הוצא משימוש. במקומו צריך להשתמש ב-Modifier.focus(), Modifier.focusObserver() ו-Modifier.focusRequester() . (I74ae4, b/162211322)
  • loadVectorResource תומך במאפייני trimPath (I808fe)
  • העברת תיבת דו-שיח ל-ui (I47fa6)
  • הוסרו 2 PointerEventPass שכבר לא זמינים הדרושים. (I33ca7)
  • PointerInteropModifier מוטמע שמספק היכולת לקבל אירועים של MotionEvents ולבצע פעולות שקשורות לכתיבה כאילו אתם הטמעה של Android View. (Ieb08c)
  • הסרת את מגביל התג שהוצא משימוש. במקומם צריך להשתמש ב-LayoutId. (Idaa05, b/162023919)
  • ממשקי ה-API לתמיכה מימין לשמאל עודכנו. נוספה ההגדרה LayoutDirectionAmbient תוכל להשתמש בה כדי לקרוא ולשנות את כיוון הפריסה. Modifier.rtl ו-Modifier.ltr הוסרו. (I080b3)
  • תמיכה בחיתוך נתיב בגרפיקה וקטורית (Ie16c9, b/158188351)
  • נוסף Modifier.layout() שמאפשר ליצור שינוי פריסה מותאם אישית בצורה נוחה (I73b69, b/161355194)
  • הוספנו ממשק AndroidView חדש והוצאנו משימוש את הרכיבים הקיימים. (I5bcfd)
  • השירות Modifier.plus הוצא משימוש. במקומו צריך להשתמש ב-Modifier.then. 'אז' מקבלים אות חזק יותר של הזמנה, וגם אוסר על הקלדת Modifier.padding().background() + anotherModifier, דבר ששובר את השרשרת וקשה יותר לקרוא (Iedd58, b/161529964)
  • הוספת כיתות משנה של [Abstract]ComposeView View לאירוח 'כתיבה' תוכן בהיררכיית תצוגה. (I46357)
  • Row ו-Column הם עכשיו פונקציות מוטבעות באופן משמעותי ולהפחית את התקורה כתוצאה מהשימוש בהם. (I75c10)
  • נוספה פריסת משנה. זהו פרימיטיבי ברמה נמוכה שמאפשר להרכיב את הצאצאים במהלך המדידה אם אנחנו רוצים להשתמש בערכים מסוימים שזמינים רק מאוחר יותר במהלך המדידה של הרכב עץ המשנה. לדוגמה, withConstraints לא מוטמע באמצעות SubcomposeLayout. (I25cc8)
  • הוספת את SemanticsNode.positionInRoot כדי לקבל את המיקום של SemanticsNode ביחס לרמה הבסיסית (root) של היררכיית הכתיבה (Icdf26, b/161336532)
  • MotionEvents עברו את כל הדרך מ-Android, לכתיבה, בחזרה ל-Android. (I14be8, b/158034713)
  • החלון הנפתח הוסר. (I00430)
  • מיקום קבוע של חלון קופץ במסכים נחתכים. (Idd7dd)
  • צריך להוסיף פעולת נגישות כדי לקבל TextLayout בטעינה (I9d6e6)
  • RemeasurementModifier נוסף. הוא מאפשר למדוד מחדש את הפריסה באופן סינכרוני. בדרך כלל אין צורך בכך כי המדידה מחדש/ההעברה מתרחשת באופן אוטומטי, אבל אנחנו משתמשים בהן בתוך LazyColumnItems במהלך הגלילה. (I5f331, b/160791058)
  • מסירים את getLineEllipsisOffset/getLineEllipsisCount. כדאי להשתמש במקום זאת, getLine ארה"ב/getLineEnd/isLineEllipSize. (I85aa2)
  • מומלץ להוסיף כמה סימנים או הערות מסיבות שקשורות לשיטות המומלצות. (I66b20)
  • חשיפה של ממשקי API נוספים של שורות ב-TextLayoutresults. (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 הועברה מלוח הציור ממשק לתמיכה בצרכנים כדי ליצור מופעי בד קנבס משלך
    5. נוצרה כיתת stub EmptyCanvas כדי לארגן מחדש DrawScope להיות פרמטר שאינו אפס במקום מאוחר יותר ולוודא שהשדה אינו null
    6. השם של ClipOp enum השתנה ל'מקרה פסקל'
    7. שם המסנן השתנה ל'מקרה פסקל'
    8. שינינו את השם של StrokeJoin enums ל-Pascal Case
    9. השם של 'טיפוסים בני מנייה (enum)' השתנה ל'מקרה של פסקל'
    10. השם של enums ב- PaintingStyle השתנה ועכשיו הוא מקרה פסקל
    11. השם של PathFillType השתנה לאותיות פסקל
    12. השם של טיפוסים ב-StrokeCap השתנה לאותיות פסקל
    13. היישום של DrawCache עודכן ועכשיו הוא לא קיים יותר להשתמש בפרמטרים 'בהשהיה'
    14. בוצע עדכון של DrawScope לשימוש בהענקת גישה מדורגת לפרמטרים פנימיים של fullPaint ו-streamPaint
    15. התמונה הקומפוזבילית עודכנה כדי להימנע משימוש ב-Box למשך פחות תקורה
    16. עדכנו את הכיתה ב-Outline ועכשיו יש בה הערות @Immutable
    17. PathNode עודכן כך שיש בו הערות @Immutable עבור כל הוראה בנתיב
    18. הרכב המשנה וקטורי עודכן כדי להסיר פרטים מיותרים בדיקות מותנות לשוויון כי כבר צריך לטפל בהרכבה אותם
    19. לטובת שיטות constructor נלוות של Rect שהוצאו משימוש של בוני פונקציות
    20. מחלקות מברשות ומבני פונקציות עודכנו עם ממשקי API של @Immutable ו- @Stable
    21. VertexMode enum עודכן ועכשיו הוא PascalCase
    22. שיטת ה-selectPaint של DrawScope עודכנה ל'מותנית' להחליף פרמטרים של קו בצבע בצביעה אם יש להם השתנה
    23. עודכנה הגודל כדי להוסיף ממשק API להרוס, שינוי השם לא צויןגודל לערך לא צוין והוסרו שיטות שלא בשימוש
  • עודכנה צריכה של ממשק API לכתיבה של BlendMode כדי למפות כראוי בין framework BlendModes של Android ומצבי PorterDuff בהתאם לרמת ה-API. הושקה ממשק ה-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)
  • השם של חומר הלימוד FilledTextField השתנה ל-TextField. השם הבסיסי של 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 של 'כתיבה', צריך לעדכן את יחסי התלות בהתאם לקטעי הקוד החדשים שמוצגים למעלה בקטע הצהרה על יחסי תלות.

שינויים ב-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 { paused = true }' כתוב עכשיו כך: semantics { hidden() } (Ic1afd, b/145951226, b/145955412)
  • נוסף Modifier.focus שמחליף את FocusModifier. (Ib852a, b/160924778)
  • מוסיפים סרגל כלים צף לבחירת TextField. (Ie8b07)
  • נוספה הערת API ניסיונית ל-API שקשור לקלט מפתח (I53c0a)
  • נוספה הערת API ניסיונית לכל ממשקי ה-API שקשורים לפוקוס (I53b24, b/160903352)
  • נוסף FocusState2 שיחליף את FocusDetailedState (I0a3ba, b/160822595)
  • נוספה trialFocus, שהוא הערת @OptIn עבור Focus API. (I1544b, b/160820961)
  • נוספה קטגוריית יחידה מסוג IntBounds, שמייצגת תחומי פיקסלים של מספרים שלמים מהפריסה. ה-API של PopupPositionProvider עודכן ועכשיו אפשר להשתמש בו. (I0d8d0, b/159596546)
  • ל-Applier נדרשת עכשיו שיטת clear() כדי להשליך יצירות (Ibe697)
  • KeyEvent הוצא משימוש והוחלף ב-KeyEvent2 (I68730)
  • סימון אופציונלי חדש לשימוש ב-UnMergedTree נוסף למציאת הבדיקות. (I2ce48)
  • ממשק API ניסיוני של LayoutNode (I4f2e9)
  • נוספו שיטות העתקה למגוון סוגי המחלקות המוטבעות, כולל:

    • היסט
    • גודל
    • רדיוס
    • תנועה
    • מקור טרנספורמציה

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

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

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

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

  • ידיות בחירה מחדש לשימוש חוזר. (I420e0)

  • הוסר קליק. משתמשים ב-Modifier.clickable (I84bdf)

  • TestTag והסמנטיקה נמחקו. במקומו צריך להשתמש ב-Modifier.testTag וב-Modifier.semantics (I15ff0, b/158841414)

  • לפני השינוי הזה, הפלאגין של המהדר לכתיבה היה לא מיירט קריאות למבנים בתוך פונקציה מסוג @Composable אם הייתה לו (I5205a, b/158123804)

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

  • מיקומי היישור הפנימיים שהוחזרו מה-Placeable#get(יישורLine) אינם אפס. אם חסר קו היישור שנוצר בשאילתה, הפונקציה VerifyLine.Unspecified תוחזר. (I896c5, b/158134875)

  • התוכן הקומפוזבילי של AndroidView נוסף פרמטר מגביל. (I48a88, b/158746303)

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

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

  • השימוש ב-IntPx הוחלף ב-Int. מיקום IntPxPosition הוחלף עם IntOffset. הערך של IntPxSize הוחלף ב-IntSize. (Ib7b44)

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

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

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

  • השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I086f4)

  • השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (Id3434)

  • השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I97a5a)

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

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

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

  • השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I19d02)

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

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

  • השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I57bff)

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

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

  • דאבל תנועות-סינון עכשיו הבהרה לאורך העץ. (If92b1)

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

  • ממשק ה-API של ה-API של DrawLayer השתנה: השם של outlineForm (צורה) השתנה לצורה, והוא מכיל את ערך ברירת המחדל RectangleForm ועכשיו לא ניתן לשנות את הערך שלו; השם שלClipToOutline שונה לקליפ. הוסרו גבולות הקליפ כי הם זהים לקליפ == true עם RectangleForm (I7ef11, b/155075735)

  • עודכנה רמה גבוהה יותר כתיבת ממשקי API שחושפים בד ציור במקום זאת, לחשוף את CanvasScope. הפעולה הזו תסיר הצורך של הצרכנים לשמור על אובייקטים של 'צייר'. למשתמשים עדיין נדרשת גישה ללוח הציור הוא יכול להשתמש בתוסף PaintCanvas שמאפשרת קריאה חוזרת (callback) לבעיה שרטוט של פקודות באמצעות קנבס. (I80afd)

  • ממשק ה-API של lambda בסופו של withConstraints השתנה. עכשיו, במקום שני פרמטרים, יש לו היקף מקלט, שבנוסף למגבלות ו-DeployDirection, מספק את המאפיינים minwidth, maxWidth, minHeight ו-maxHeight ב-Dp (I91b9a, b/149979702)

  • השם של LayoutModifier2 שונה ל-LayoutModifier. (Id29f3)

  • הוסר ממשק LayoutModifier שהוצא משימוש. (I2a9d6)

  • לפונקציות מדידות פנימיות ב-Layout וב-LayoutModifier2 יש עכשיו מקלט IntrinsicMeasureScope שמספק עכשיו API של שאילתות מהותיות עם כיוון פריסה מופץ במרומז. (Id9945)

  • אפשר למדוד את הצאצאים של Layout ו-LayoutModifier, בכיוון פריסה שונה. (Ibd731)

  • הוספנו את Modifier.zIndex() כדי לשלוט בסדר השרטוט של צאצאים באותה פריסת הורה. השם של מאפיין הגובה ב-DrawLayerModifier משתנה ל-shadowHeightion והוא לא שולט יותר בסדר השרטוט. סדר הפרמטרים ב-DrawShadow השתנה: הגובה הוא עכשיו הראשון והצורה היא השנייה עם ברירת מחדל של RectangleForm. (I20150, b/152417501)

  • הוסרו onSizeChange ו-onPositionChange in 'בעלים'. (I5c718)

  • נוסף Constraints2, עותק של מגבלות תומכת רק בערכי מגבלות IntPx ולא ב-IntPx. IntPx יוסרו וכל האילוצים של מספרים שלמים יתייחסו להיות פיקסלים כמו Android.

    • הוספנו גם את IntSize, שבסופו של דבר תחליף את IntPxSize. (I4b43a)
  • ניתן ליצור יישור באופן מיידי עם ערכים שרירותיים. נוספו יישורים בתלת-ממד. (Ia0c05)

  • עכשיו הפרמטר OptimizeToSiblings מקבל מודל 'מדידה' במקום 'placeholder'. (I5788d)

  • (I45f09, b/152842521)

    • השם של ScaleFit שונה ל-ContentScale
    • ContentScale הועבר מממשק משתמש גרפי לממשק משתמש (ui-core) חיים באותו המודול כמו היישור API.
    • השם של FillMaxAttribute השתנה ל'חיתוך'
    • השם של FillMin מצד השתנה ל-Fit
    • שינינו את השם של 'כושר' ל'פנים' כדי לשפר את ההתאמה
    • ערכים מקבילים של ImageView.ScaleType
    • נוסף תיעוד שמציין שהשילוב של Crop ו-יישור.Center משיגה את אותה התוצאה בתור ImageView.ScaleType.CENTER_CROP ו-Fit נעשה שימוש ב-יישור.Center משיג את אותה תוצאה כמו ImageView.ScaleType.FIT_CENTER. השימוש בפנים עם יישור.Center משיג את אותו הדבר תוצאה כ-ImageView.ScaleType.CENTER_INSIDE
  • תמיכת Rtl למגבילי משיכה. (I0aaf9)

  • API שהופץ לניפוח תצוגות של Android מ-XML. לפרטים נוספים, ראו הדגמה של ViewInCompose. (I42916)

  • שיפור של DrawModifier API:

    • יצרת את היקף המקבל עבור pull() ContentDrawScope
    • הוסרו כל הפרמטרים מ-Daw()
    • הממשק של DrawScope זהה לממשק הקודם של CanvasScope
    • ContentDrawScope כולל שיטת pullContent() (Ibaced, b/152919067)
  • נוספו positionInParent ו-boundsInParent לקואורדינטות ב-Layout9s. (Icacdd, b/152735784)

  • DrawLayerModifier ו-trainLayer() משמש עכשיו כברירת המחדל ל-ClipToBounds ו-ClipToOutline ל-FALSE. (I0eb8b, b/152810850)

  • השם של Layout result השתנה ל-MeasureAmount. (Id8c68)

  • נוסף LayoutModifier2, ממשק API חדש להגדרת מגבילי פריסה; LayoutModifier שהוצא משימוש (If32ac)

  • אופרטור הצירוף הוחלפה בפונקציות של תוספי היצרן (I225e4)

  • נוספו נכסי TranslateX/Y לתמיכה לקזז את רשימת פקודות השרטוט עבור של שכבה נתונה. האפשרות הזו שימושית להעברת תוכן בתגובה לאנימציות או לאירועי מגע. (I8641c)

  • נוספו פרמטרים מסוג pivotX ו-pivotY. ל-Layer APIs של השכבות לתמיכה ברוטציה ובהתאמה לעומס (scaling) סביב נקודה מסוימת בשכבה (Icf7c3)

  • הוספת OnPositionedModifier ו-OnChildPositionedModifier כדי להחליף תכנים קומפוזביליים מסוג OnPositioned ו-OnChildPositioned למשימות ספציפיות. (I2ec8f)

  • נוסף LayerModifier, מקש צירוף שמאפשר הוספת RenderNode לפריסה. היא מאפשרת להגדיר חיתוך, אטימוּת, סיבוב, התאמה לעומס (scaling) וצלליות. הפעולה הזו תחליף את Re PaintBoundary. (I7100d, b/150774014)

  • כיוון הפריסה יופץ מצומת פריסת ההורה לצאצאים. נוסף ערך לשינוי כיוון הפריסה. (I3d955)

  • רכיב מקבץ תומך בכיווניות מימין לשמאל (Ic9e00)

  • תמיכה ראשונית ב-Rtl בפריסת פיתוח נייטיב (Ia5519)

  • השדות Density ו-DensityScope מוזגו לממשק אחד. במקום TimeDensity() אפשר להשתמש ב-DensityAmbient.current. במקום withDensity(צפיפות) רק עם(צפיפות) (I11cb1)

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

  • לקואורדינטות כבר אין מאפיין מיקום. אינו הגיוני כאשר מביאים בחשבון את LayoutModififiers, סיבוב או התאמה לעומס (scaling). במקום זאת, על המפתחים להשתמש ב-Parent_Coordinates ו-ChildToLocal() כדי לחשב את הטרנספורמציה ניהול צוותים לפריסה אחרת.

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

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

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

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

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

  • כל השימושים בצבע nullable ב-API הוחלפו ב- non-null ולהשתמש ב-Color.Unset במקום ב-null (Iabaa7)

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

  • נוסף צבע לא מוגדר כדי לייצג ערך לא מוגדר בלי צבעי אגרוף. (If901a)

  • נוספו אפשרויות Canvas. {5/} ו- שיטות תוסף של Canvas.scale ל- לצרוך קואורדינטות צירים אופציונליות עבור וטרנספורמציות. ברירת המחדל בפינה הימנית העליונה של תרגום הקנבס הנוכחי.

    גם Canvas.אוספיםRad הועבר להיות שיטת תוסף לשמירה על עקביות (Ibaca6)

  • יצרתי PixelMap API לתמיכה לשלוח שאילתות על פרטי פיקסלים מ-ImageAsset. (I69ad6)

  • השם השתנה ל-FrameworkRect/toFrameworkRectF ל- toAndroidRect/toAndroidRectF כדי להתאים למוסכמות מתן השמות להמרות אובייקטים בין הרכבה ו-Android שהם מבוססים על ממשקי ה-API של framework. עודכנו גם כן מסמכים בממשקי ה-API האלה (I86337)

  • נוסף VectorPainter API אל להחליף את Subcomposition API קיים בשביל בגרפיקה וקטורית. תוצאה של הרכב משנה הוא אובייקט VectorPainter במקום DrawModifier. DrawVector הקודם הוצא משימוש לתכנים קומפוזביליים לטובת VectorPainter.

    שם ה-API של Image(Painter) השתנה ל- PaintBox(Painter) יצרתם קומפוזבילי וקטורי שפועל כמו אפשר ליצור תמונה קומפוזבילית, אבל לא באמצעות VectorAsset במקום זאת של ImageAsset (I9af9a, b/149030271)

  • השם של התמונה השתנה ל-ImageAsset כדי ליצור הבחנה טובה יותר בין נתוני התמונה לבין התוכן הקומפוזבילי של תמונה שמיועדת לפרסום עתידי. _Body:נוצרה שיטת התוסף ב-android.graphics.Bitmap, Bitmap.asImageAsset(), כדי ליצור מכונה של ImageAsset שימושי לשילוב במכשירי Android מסורתיים פיתוח אפליקציות באמצעות מסגרת הכתיבה (Id5bbd)

  • נוסף TextDirection.Content (I48f36)

  • נוסף אופרטור TextDecoration.plus (I0ad1a)

  • Force הוסר מערכי TextDirectionAlgorithm (Icc944)

  • השם של TextDirectionAlgorithm נקרא TextDirection (I75ce8)

  • מיישמת את LongClickAndDrag לבחירת TextField. (I17919)

  • נוספה AnnotatedString.getStringDescription שמחזיר את כל ההערות בטווח. (I1fa00)

  • שם החבילה של הלוקאלים והלוקאלים השתנה מ- androidx.ui.text to androidx.ui.intl (I8132c)

  • הסמן של TextField מציג אנימציה מהבהבת (Id10a7)

  • שינוי ב-API: השם של AnnotatedString(builder: Builder) השתנה ל-NotedString(builder: Builder). (Ia6377)

  • שינוי ב-API: השם של AnnotatedString.Item השתנה ל-AnnotatedString.Range. (I2d44d)

  • שינוי השם של AnnotatedString.Builder.addAnnotationString ל-addStringAnnotation. (I5059e)

  • כעת ניתן להסתיר/להציג את מקלדת התוכנה באמצעות Softwareמקלדתבקר שמסופקת על ידי onTextInputStarted callback (I8dc44, b/151860051)

  • נוסף אופרטור פלוס לסגנון (טקסט/פסקה/מרווח) נציגים לפונקציה merge() . (Ia1add)

  • לא מתבצע יותר הצמדה של Fontweight.lerp. זה עדיין סיווג נתונים. (I521c2)

  • Fontweight constructor הוא ציבורי עכשיו, הוא כבר לא סיווג נתונים. (Id6b1f)

  • הוספה של getLineStart, getLineEnd, getEllipsisOffset ו-getEllipsisCount ל-TextLayoutresults (Ibc801)

  • השם של מודול ui-text השתנה ל-ui-text-core (I57dec)

  • הוסרה סיווג גודל שלא נמצא בשימוש מכיוון שיש כפילות, במודול הווי-גיאומטריה צריכה. (I1b602)

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

  • הוספת מרווחים פנימיים, גבולות, צורה ופרמטר רקע ל-Box (I05027, b/148147281)

תיקוני באגים

  • קריאה חוזרת של onFocusChange בשדות טקסט ששמם השתנה ל-onFocusChanged (Ida4a1)
  • העמודות VerticalScroller ו-HoriziontalScroller הוצאו משימוש. ניתן להשתמש ב- ScrollableColumn וב-SllableRow כדי להתנסות באופן מובנה בהתנהגות ובפרמטרים של עמודות/שורה, או ב-Modifier.verticalScroll ו-Modifier.verticalScroll לרכיב משלך. באופן דומה, ScrollerPosition הוצא משימוש לטובת ScrollState (I400ce, b/157225838, b/149460415, b/154105299)
  • השם של runOnIdleCompose השתנה ל-runOnIdle (I83607)
  • השמות של חלק מממשקי ה-API לבדיקה השתנו ועכשיו הם יותר אינטואיטיביים. הכול השמות של ממשקי ה-API של findXYZ השתנו ל-ב-NodeXYZ. השמות של כל ממשקי ה-API של DoXYZ השתנו ל- לבצעXYZ. (I7f164)
  • עכשיו אפשר להרכיב ממשק משתמש ב-ViewGroups בלי הרכבה חדשה. אפשר לראות דוגמה ב-ViewInteropDemo. (I9ab0b, b/160455080)
  • נוספו המיון עם ו-removeRange ל-MutableVector (Icccf7)
  • צריך להטמיע נקודות אחיזה לבחירת גרירה כדי לשנות את הבחירה ב-TextField. (I27032)
  • הוסרה מחלקה מוטבעת של Shader עטוף NativeShader מצפה למחלקה השם של NativeShader השתנה ל-Sshader. הפעילות של הכיתה הארוזה של Shader לא להוסיף שום דבר חשוב לפלטפורמת ה-API והוא היה מחלקה מוטבעת, לכן צריך להשתמש ב-NativeShader ישירות בכיתה. (I25e4d)
  • צבעי יסוד משודרגים כדי לספק התאמה לעומס (scaling) את המגבלות הנתונים ואת קנה המידה של התוכן הפרמטר. שימושים של צבעים הם יכולים להתאים את תוכן הציור שלהם על סמך הגודל הנתון של את ה-DawScope שבה הם שרטטו.

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

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

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

  • הוצאנו משימוש את ההערה @ללא מעקב. מחליפים ב- @ComposableContract(tracked=false) (Id211e)

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

  • תוקנה בעיה שבה קלט הסמן השירות יגרום לקריסה PointerInputFilters הוסרו דרך בתת-הרכב במהלך הפרידה. בעיה זו כבר נפתרה. (I1f48b, b/157998762)

  • תוקנה בעיה שגרמה לשליחת קלט של מצביע תגרום לקריסה אם PointerInputFilters הוסרו דרך בתת-הרכב במהלך הפרידה. בעיה זו כבר נפתרה. (Iab398, b/157998762)

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

    עודכן ב-DawScope.drawRoundRect לצריכה פרמטר רדיוס יחיד במקום שני פרמטרים נפרדים ערכים צפים של הרדיוס לאורך x ו-y ציר (I46d1b)

  • התוכן הקומפוזבילי הוא כבר לא הפשטה מועילה. רוב ההרכבה מחדש אמורה להתרחש כתוצאה מהקצאות MutableState. מעבר לזה, מומלץ להשתמש בפונקציה invalidate כדי להפעיל הרכבה מחדש של ההיקף הנוכחי. (Ifc992)

  • השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (Iede0b)

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

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

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

    כדי לתמוך בפעולה הזו, חתימת ה-JVM של כל הפונקציות הקומפוזביליות השתנתה. פונקציה קומפוזבילית שמקבלת פרמטר יחיד הופכת לפונקציה שמקבלת 3 פרמטרים, והפרמטרים הנוספים הם Composer, שהוא מספר שלם 'מפתח'. מספר שלם ב-bitmask שמשמש להפצת מטא-נתונים באמצעות קריאות.

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

    שינויים התנהגותיים ידועים הנובעים מכך:

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

    העבודה הזו כללה כמה אופטימיזציות: 1. התוצאה של השוואות של פרמטרים מופצת דרך תרשים הקריאה לפונקציות קומפוזביליות אחרות. התוצאה תהיה פחות השוואות בזמן הריצה, תקטין את גודל הטבלה של מיקומי המשבצות וכן יותר דילוג על פונקציות קומפוזביליות שלא דילגת עליהן בעבר 2. פרמטרים שנקבעים שהם "סטטיים" בזמן הקומפילציה כבר לא מושווים ולא מאוחסנים בזמן הריצה. הפעולה הזו גורמת לצמצום של מספר ההשוואות ולהקטנת טבלת המיקומים. 3. מבנה הזרימה של בקרה בגוף הפונקציות משמש לצמצום מספר הקבוצות שנוצרות. כך גודל הטבלה של מיקומי המשבצות מצטמצם ויש פחות עבודה בסביבת זמן הריצה 4. פרמטרים של שולח ומקלט שאינם בשימוש לפונקציות לא נכללים בקביעת יכולת הדילוג של הפונקציה אם לא נעשה בהם שימוש בתוך גוף הפונקציה.

    רוב שינויי התוכנה היו שעלולים לגרום לכשל בממשקי API שהמהדר מטרגט אליהם ישירות, והשימוש האופייני בכתיבה לא יושפע: 1. Composer::startExpr הוסר 2. Composer::endExpr הוסר 3. הממשק Composer::call הוצא משימוש 4. עומסי-החריגים שאינם משתנים של key הוסרו. מעכשיו צריך להשתמש בגרסה vararg. 5. ההערה הזו הוצאה משימוש. אפשר להשתמש ב-key כתחליף. 6. ScopeUpdateScope::updateScope השתנה כדי לצפות לפונקציה3 במקום פונקציה1 7. הפונקציה startableFunction ו-restartableFunctionN עודכנו וכוללים פרמטרים נוספים של זמן הידור (compile). (I60756, b/143464846)

  • הוסרו מגבילי יישור שהוצאו משימוש. (I10877)

  • הוסר Re PaintBoundary לטובת DrawLayerModifier (I00aa4)

  • ללחצן, FloatingActionButton ו-Clickable יש עכשיו פרמטר enabled נפרד. השמות של חלק מהפרמטרים ב'לחצן' שונו או שהסדר שלהם השתנה. (I54b5a)

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

  • שינויי תוכנה ב-Ambis API פרטים נוספים זמינים במסמכי היומן ובמסמכי Ambient<T> (I4c7ee, b/143769776)

  • ההתנהגות של ברירת המחדל של TextDirection שונתה כדי לקבוע של LayoutDirection. כלומר, אם LayoutDirection היא בפורמט RTL, ברירת המחדל TextDirection תהיה RTL. בעבר זה היה TextDirection.ContentOrLtr/Rtl (I4e803)

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

  • מוסיפה פרמטרים נפוצים ל-Text(). אם אתם יוצרים כרגע סגנון טקסט מקומי שיעביר חלק קטן מהפרמטרים האלה, כמו Text(style = TextStyle(text השבתה = Text השבתה.Center)), עכשיו אתם יכולים לספק רק את הפרמטרים ישירות: Text(text קשורה = Text השבתה.Center) (I82768)

  • השם של מודול ui-android-text השתנה ל-ui-text-android (I68cbe)